{"id":81689,"url":"https://github.com/embeddinglayer/awesome-fingerprinting","name":"awesome-fingerprinting","description":"A collection of browser fingerprinting projects, research, and resources. Intended as a way to aggregate research surrounding the subject.","projects_count":74,"last_synced_at":"2026-07-09T09:00:26.050Z","repository":{"id":246415754,"uuid":"821058910","full_name":"embeddinglayer/awesome-fingerprinting","owner":"embeddinglayer","description":"A collection of browser fingerprinting projects, research, and resources. Intended as a way to aggregate research surrounding the subject.","archived":false,"fork":false,"pushed_at":"2026-02-12T10:46:54.000Z","size":28,"stargazers_count":73,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-06-21T09:00:46.715Z","etag":null,"topics":["automation","browser-fingerprinting","crawler","device-fingerprint","fingerprinting","scraper","security"],"latest_commit_sha":null,"homepage":"https://browser-fingerprint.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/embeddinglayer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-27T18:16:35.000Z","updated_at":"2026-06-13T13:51:42.000Z","dependencies_parsed_at":"2025-11-17T14:01:13.112Z","dependency_job_id":null,"html_url":"https://github.com/embeddinglayer/awesome-fingerprinting","commit_stats":null,"previous_names":["embeddinglayer/awesome-fingerprinting"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/embeddinglayer/awesome-fingerprinting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddinglayer%2Fawesome-fingerprinting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddinglayer%2Fawesome-fingerprinting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddinglayer%2Fawesome-fingerprinting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddinglayer%2Fawesome-fingerprinting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/embeddinglayer","download_url":"https://codeload.github.com/embeddinglayer/awesome-fingerprinting/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddinglayer%2Fawesome-fingerprinting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35293217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-12-17T07:27:43.475Z","updated_at":"2026-07-09T09:00:26.050Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Research","Sites","Libraries \u0026 Projects","Fingerprinting Evasion","Other"],"sub_categories":["Index"],"readme":"# awesome-fingerprinting\n\n\u003e **Fingerprinting** is a practice in which websites identify a particular browser (and by extension, a particular user) by collecting and combining distinguishing features of the browser and underlying operating system. - [Mozilla](https://developer.mozilla.org/en-US/docs/Glossary/Fingerprinting)\n\n## About\n\nA collection of browser fingerprinting projects, research, and resources. Intended as a way to aggregate research surrounding the subject.\nPlease read the [contributions](#contribute) section before opening a pull request.\n\n### Index\n\n- [Libraries \u0026 Projects](#libraries--projects)\n- [Sites](#sites)\n- [Research](#research)\n- [Fingerprinting](#fingerprinting-evasion)\n- [Other](#other)\n- [Contribute](#contribute)\n\n## Libraries \u0026 Projects\n\n| Library                                                                                         | Description                                                          |\n| ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |\n| [FingerprintJS](https://github.com/fingerprintjs/fingerprintjs)                                 | FingerprintJS open source library for fingerprinting browsers.       |\n| [CreepJS](https://github.com/abrahamjuliot/creepjs)                                             | A compilation of browser fingerprinting research.                    |\n| [Supercookie](https://github.com/jonasstrehle/supercookie)                                      | Fingerprinting visitors via favicons                                 |\n| [TorZilla](https://github.com/arkenfox/TZP)                                                     | Fingerprinting Gecko based browsers                                  |\n| [TLS Fingerprinting](https://github.com/salesforce/ja3)                                         | TLS Fingerprinting                                                   |\n| [FingerprintJS BotD](https://github.com/fingerprintjs/BotD)                                     | Bot detection library                                                |\n| [Website Fingerprinting Library](https://github.com/Xinhao-Deng/Website-Fingerprinting-Library) | Pytorch-based open-source library for website fingerprinting attacks |\n| [ThumbmarkJS](https://github.com/thumbmarkjs/thumbmarkjs)                                       | Opensource alternative to FingerprintJS                              |\n\n## Sites\n\n- [AmIUnique](https://amiunique.org/)\n- [PixelScan](https://pixelscan.net/)\n- [tls.peet.ws](https://tls.peet.ws/)\n  - [tls.peet.ws (HTTP/3 API)](https://tls3.peet.ws/api/all) - HTTP/3 version of the peet API\n- [The Illustrated TLS 1.3 Connection](https://tls13.xargs.org/)\n- [DeviceAndBrowserInfo](https://deviceandbrowserinfo.com/)\n- [BrowserLeaks](https://browserleaks.com/)\n- [Browserize (privacy check)](https://privacycheck.sec.lrz.de/)\n- [bot-detector](https://bot-detector.rebrowser.net/) - demo of CDP leaks\n- [Cloudflare connection tool (Enterprise only)](https://cfdata.lol/tools/connection/) - shows CF management score (Enterprise only)\n- [Brave Farbling demo](https://dev-pages.bravesoftware.com/fingerprinting/farbling.html)\n- [Chrome Extension Fingerprinting](https://fpmon.github.io/fingerprinting-monitor/)\n- [SneakerDev Discord](https://discord.gg/sneakerdev)\n\n## Research\n\n- [Blog: Detecting Privacy Badger](https://adtechmadness.wordpress.com/2020/03/27/detecting-privacy-badgers-canvas-fp-detection/)\n- [Blog: Salesforce TLS Fingerprinting](https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/)\n- [Pixel Perfect: Fingerprinting Canvas in HTML5](https://hovav.net/ucsd/dist/canvas.pdf)\n- [Dark Knowledge](https://github.com/prescience-data/dark-knowledge) - A curated library of research papers and presentations for counter-detection and web privacy enthusiasts.\n- [Picasso: Lightweight Device Class Fingerprinting (Google Research)](https://research.google/pubs/picasso-lightweight-device-class-fingerprinting-for-web-clients/)\n- [Fingerprinting Evasive Bots](https://arxiv.org/pdf/2406.07647)\n- [Blog: How anti-fingerprinting extensions tend to make fingerprinting easier](https://palant.info/2020/12/10/how-anti-fingerprinting-extensions-tend-to-make-fingerprinting-easier/)\n- [Blog: Detecting Headless Browsers](https://antoinevastel.com/javascript/2020/02/09/detecting-web-bots.html)\n- [Blog: Detecting Puppeteer through JS Execution](https://antoinevastel.com/javascript/2019/06/10/monitor-js-execution.html)\n- [Reddit: Inside reCAPTCHA's development](https://www.reddit.com/r/programming/comments/10755l2/reverse_engineering_tiktoks_vm_obfuscation_part_2/j3lwqbc/?context=3)\n- [WebGPU Fingerprinting Attacks](https://arxiv.org/pdf/2401.04349)\n- [Who Touched My Browser Fingerprint](https://yinzhicao.org/fpmeasurement/imc20.pdf)\n- [Quantifying the Fingerprintability of Browser Extensions](https://securitee.org/files/xhound-oakland17.pdf)\n- [Fingerprinting in Style: Detecting Browser Extensions via Injected Style Sheets](https://www.usenix.org/conference/usenixsecurity21/presentation/laperdrix)\n- [Cookieless Monster](http://consideredharmful.info/papers/Paper%20-%20Hot%20Topics%20in%20Computer%20Security%20-%20Cookieless%20Monster.pdf)\n- [Blog: Browser Finerprinting via CSS](https://fingerprint.com/blog/disabling-javascript-wont-stop-fingerprinting/)\n- [Blog: nullpt.rs](https://www.nullpt.rs/)\n- [Blog: Detecting residential proxy networks](https://rasbora.dev/blog/detecting-residential-proxy-networks)\n- [Blog: pixelmelt.dev](https://blog.pixelmelt.dev/)\n- [Blog: mimic.sbs](https://www.mimic.sbs/)\n- [Blog: yog's blog](https://yoghurtbot.github.io/)\n- [Blog: nullpt.rs](https://nullpt.rs/)\n- [Blog: Antoine Vastel](https://antoinevastel.com/)\n- [Blog: Incolumitas](https://incolumitas.com/)\n- [Blog: Detecting proxies and VPN with latencies](https://web.archive.org/web/20250426052523/https://incolumitas.com/2021/06/07/detecting-proxies-and-vpn-with-latencies/)\n- [Blog: FP.js Audio fingerprinting](https://fingerprint.com/blog/audio-fingerprinting/)\n- [Blog: antibot.blog](https://antibot.blog/)\n- [Blog: JA4+ network fingerprinting](https://blog.foxio.io/ja4+-network-fingerprinting)\n- [Blog: http2 Fingerprinting](https://www.trickster.dev/post/understanding-http2-fingerprinting/)\n- [One Million Site Tracking Measurements](https://www.cs.princeton.edu/~arvindn/publications/OpenWPM_1_million_site_tracking_measurement.pdf)\n- [DeepFPD: Browser Fingerprinting Detection via Deep Learning](https://ieeexplore.ieee.org/abstract/document/10431413)\n- [The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web](https://hal.science/hal-04617727v1/document)\n- [steakenthusiast - AST deobfuscation resources](https://steakenthusiast.github.io/archives/)\n- [Bulldozer thesis](https://github.com/ceres-c/bulldozer/blob/master/thesis.pdf)\n- [Surreptitious Software by Christian Collberg](https://www.amazon.com/dp/0321549252) (ISBN: `0321549252`)\n- [Mouse-Synthesizer](https://github.com/MIMIC-LOGICS/Mouse-Synthesizer) - The most advanced mouse movement synthesizer based on the human hand biometric theory.\n\n## Fingerprinting Evasion\n\n| Library                                                                                    | Description                                                                   | Language   |\n| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | ---------- |\n| [FingerprintSuite](https://github.com/apify/fingerprint-suite)                             | Evade browser fingerprinting for headless browsers.                           | Typescript |\n| [Undetected Chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver)   | Modified selenium thats intended to bypass common headless browser checks     | Python     |\n| [PuppeteerExtra](https://github.com/berstend/puppeteer-extra)                              | Puppeteer extensions to evade common detections                               | Typescript |\n| [Puppeteer With Fingerprints](https://github.com/CheshireCaat/puppeteer-with-fingerprints) | Puppeteer library to modify the browser fp                                    | Javascript |\n| [FakeBrowser](https://github.com/kkoooqq/fakebrowser)                                      | Headless Browser Anti-detect                                                  | Javascript |\n| [JS Shelter](https://github.com/polcak/jsrestrictor)                                       | Extension to restrict the information gathered through browser fingerprinting | Javascript |\n| [Privacy Badger](https://github.com/EFForg/privacybadger)                                  | Extension to block basic fingerprinting techniques                            | Javascript |\n| [Chameleon](https://github.com/ghostwords/chameleon)                                       | Deprecated: Extension for blocking browser fingerprinting                     | Javascript |\n| [uTLS](https://github.com/refraction-networking/utls)                                      | TLS Impersonation Library                                                     | Golang     |\n| [TLS Client](https://github.com/bogdanfinn/tls-client)                                     | Built on top of uTLS offers a simpler wrapper with more profiles              | Golang     |\n| [Curl Impersonate](https://github.com/lwthiker/curl-impersonate)                           | TLS Impersonation                                                             | Python     |\n| [Reqwest Impersonate](https://github.com/0x676e67/reqwest-impersonate)                     | TLS Impersonation                                                             | Rust       |\n| [PRIMP](https://github.com/deedy5/primp)                                                   | TLS Impersonation                                                             | Rust       |\n| [CamouFox](https://github.com/daijro/camoufox)                                             | Gecko Based Anti-Detect Browser                                               | C++        |\n\n## Other\n\n- [Brave Anti-Fingerprinting Wiki](https://github.com/brave/brave-browser/wiki/Fingerprinting-Protections)\n- [Ungoogled Chromium FP Patches](https://github.com/ungoogled-software/ungoogled-chromium/blob/07e4bdd1da038c7a4423637e6e00ffdbe1695581/patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch#L31)\n- [Fingerprint Guidance](https://w3c.github.io/fingerprinting-guidance/)\n\n## Contribute\n\nContributions are welcome. Please follow the general format when creating a pull request.\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/embeddinglayer%2Fawesome-fingerprinting/projects"}