Gathering detailed insights and metrics for puppeteer-afp
Gathering detailed insights and metrics for puppeteer-afp
Gathering detailed insights and metrics for puppeteer-afp
Gathering detailed insights and metrics for puppeteer-afp
puppeteer-core
A high-level API to control headless Chrome over the DevTools Protocol
puppeteer
A high-level API to control headless Chrome over the DevTools Protocol
@puppeteer/browsers
Download and launch browsers
puppeteer-extra-plugin-stealth
Stealth mode: Applies various techniques to make detection of headless puppeteer harder.
npm install puppeteer-afp
80.7
Supply Chain
98.3
Quality
80
Maintenance
100
Vulnerability
100
License
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
117 Stars
29 Commits
9 Forks
2 Watching
1 Branches
3 Contributors
Updated on 21 Nov 2024
JavaScript (100%)
Cumulative downloads
Total Downloads
Last day
15.3%
962
Compared to previous day
Last week
30.6%
5,105
Compared to previous week
Last month
-5.4%
17,451
Compared to previous month
Last year
152.7%
216,276
Compared to previous year
Stop websites fingerprinting your puppeteer browser instances.
This covers: Canvas Fingerprinting, WebGL Fingerprinting, AudioContext Fingerprinting, Font Fingerprinting
1yarn add puppeteer-afp 2# - or - 3npm install puppeteer-afp
1const puppeteer = require('puppeteer'); 2const { 3 protectPage, 4 protectedBrowser, 5} = require('puppeteer-afp'); 6 7const browser = await puppeteer.launch(); 8// I always use this method to get the active page, and not to have to open a new tab 9const pageToProtect = (await browser.pages())[0]; 10// For these options, all are optional, and you dont have to use them, 11// these are used just if you want to reuse a fingerprint 12const options = { 13 canvasRgba: [0, 0, 0, 0], //all these numbers can be from -5 to 5 14 webglData: { 15 3379: 32768, //16384, 32768 16 3386: { 17 0: 32768, // 8192, 16384, 32768 18 1: 32768, // 8192, 16384, 32768 19 }, 20 3410: 2, // 2, 4, 8, 16 21 3411: 2, // 2, 4, 8, 16 22 3412: 16, // 2, 4, 8, 16 23 3413: 2, // 2, 4, 8, 16 24 7938: "WebGL 1.0 (OpenGL Chromium)", // "WebGL 1.0", "WebGL 1.0 (OpenGL)", "WebGL 1.0 (OpenGL Chromium)" 25 33901: { 26 0: 1, 27 1: 1, // 1, 1024, 2048, 4096, 8192 28 }, 29 33902: { 30 0: 1, 31 1: 4096, // 1, 1024, 2048, 4096, 8192 32 }, 33 34024: 32768, //16384, 32768 34 34047: 8, // 2, 4, 8, 16 35 34076: 16384, //16384, 32768 36 34921: 16, // 2, 4, 8, 16 37 34930: 16, // 2, 4, 8, 16 38 35660: 2, // 2, 4, 8, 16 39 35661: 32, // 16, 32, 64, 128, 256 40 35724: "WebGL GLSL ES", // "WebGL", "WebGL GLSL", "WebGL GLSL ES", "WebGL GLSL ES (OpenGL Chromium)" 41 36347: 4096, // 4096, 8192 42 36349: 8192, // 1024, 2048, 4096, 8192 43 37446: "HD Graphics", // "Graphics", "HD Graphics", "Intel(R) HD Graphics" 44 }, 45 fontFingerprint: { 46 noise: 1, // -1, 0, 1, 2 47 sign: +1, // -1, +1 48 }, 49 audioFingerprint: { 50 getChannelDataIndexRandom: 0.7659530895341677, // all values of Math.random() can be used 51 getChannelDataResultRandom: 0.7659530895341677, // all values of Math.random() can be used 52 createAnalyserIndexRandom: 0.7659530895341677, // all values of Math.random() can be used 53 createAnalyserResultRandom: 0.7659530895341677, // all values of Math.random() can be used 54 }, 55 webRTCProtect: true //this option is used to disable or enable WebRTC disabling by destroying get user media 56 }; 57// run this function on any page you want to protect, so pages loaded on 58// this page after this is done will be protected 59await protectPage(pageToProtect, options); 60 61//Another way of using it is to protect automatically a new tab, 62//and if you want the fingerprint to change, just remove the options parameter: 63const protectedChromium = await protectedBrowser(browser, options); 64//and then we use the following command: 65const protectedPage = protectedChromium.newProtectedPage() 66
Go to https://webbrowsertools.com with your browser and check your fingerprints
Pavle Aleksic
This project is licensed under the terms of the MIT license.
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
dependency not pinned by hash detected -- score normalized to 3
Details
Reason
Found 2/27 approved changesets -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
21 existing vulnerabilities detected
Details
Score
Last Scanned on 2024-11-18
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More