GitRead 中文社区
首页趋势排行榜原创文章严选周刊
更多资源
新手训练营
精选专题热门话题GitHub 文档资源精选实战指南

supercookie

⚠️ Browser fingerprinting via favicon!

  • 语言HTML
  • 大小22.1 MB
  • 更新2025年11月18日
  • Issues15
在 GitHub 打开
avatarjonasstrehle

项目介绍

jonasstrehle/supercookie 是一个托管在 GitHub 上的开源项目,主要使用 HTML 编写,采用 MIT License 许可证,目前获得 7.4k 个 Star、372 次 Fork。

仓库全名
jonasstrehle/supercookie

README 摘要

Supercookie uses favicons to assign a unique identifier to website visitors. Unlike traditional tracking methods, this ID can be stored almost persistently and cannot be easily cleared by the user. The tracking method works even in the browser's incognito mode and is not cleared by flushing the cache, closing the browser or restarting the operating system, using a VPN or installing AdBlockers. 🍿 Live demo. About 💭…

完整内容见 GitHub 原始 README 或本页 。

常见问题

supercookie 用什么语言开发?

主要使用 HTML 编写,采用 MIT License 许可证,目前有 7.4k 个 Star。

supercookie 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 supercookie 的源码?

可以直接克隆仓库:git clone https://github.com/jonasstrehle/supercookie.git;安装与运行步骤见仓库 README。

supercookie 最近还在维护吗?

仓库最近一次更新为 2025年11月18日,当前有 15 个未关闭 Issue;Star 数为 7.4k,可作为社区活跃度的参考。

本页面展示项目元数据与原始 README,GitRead 中文社区 编辑团队负责选题收录。

相关仓库

ossu/computer-science avatar
computer-scienceossu
15 小时前
211.0k
26.1k
29

通往免费计算机科学自学教育之路!

awesome-listcomputer-sciencecourses+1
HTML
1.8 MB
2
详情
ripienaar/free-for-dev avatar
free-for-devripienaar
10 小时前
142.3k
14.8k
0

一份提供免费套餐、对 devops 和 infradev 有吸引力的 SaaS、PaaS 和 IaaS 服务列表

free-for-developersawesome-list
HTML
11.0 MB
0
详情
PKUFlyingPig/cs-self-learning avatar
cs-self-learningPKUFlyingPig
9月17日
76.7k
8.0k
167

计算机自学指南

HTML
70.4 MB
0
详情
eternity4719/HowToLiveBetter avatar
HowToLiveBettereternity4719
21 小时前
74.6k
6.6k
13

高性价比人生指南: 长寿防病、急救、省钱理财、法律红线、失业与工伤、医保社保、恋爱婚育、怀孕育儿、创业与做平台合规、出国与技能。每条写明成本、收益、证据等级和原始出处,只引期刊论文与官方文件。

HTML
22.4 MB
0
详情
shanraisshan/claude-code-best-practice avatar
claude-code-best-practiceshanraisshan
15 小时前
68.9k
6.9k
44

从氛围编程到智能体工程——实践让 Claude 臻于完美

agentic-aiagentic-codingagentic-engineering+17
HTML
76.2 MB
0
详情
cathrynlavery/diagram-design avatar
diagram-designcathrynlavery
1 小时前
66.1k
4.4k
52

面向 Claude Code、Codex、GitHub Copilot、Cursor、Factory Droid、Qoder 和 Pi 的编辑级图表设计。45 种图表类型。自包含 HTML + SVG。无阴影。拒绝 Mermaid 式粗糙产物。

agent-skillsclaude-codecodex+5
HTML
37.5 MB
0
详情
docker/awesome-compose avatar
awesome-composedocker
2 周前
46.7k
8.3k
440

精选 Docker Compose 示例

awesomeawesome-listdocker-compose
HTML
11.5 MB
0
详情
tabler/tabler avatar
tablertabler
1 天前
42.0k
4.4k
41

Tabler 是基于 Bootstrap 构建的免费开源 HTML 仪表盘 UI 套件

admin-dashboardadminpanelboilerplate-template+17
HTML
384.5 MB
0
详情

关于

browserbrowser-fingerprintbrowser-fingerprintingchromecookieedgeexpressfaviconfingerprintfirefoxhtmlidentificationjavascriptnodejsprivacysafarisecuritysupercookietrackingtypescript
  • MIT License
  • 7.4k Stars
  • 372 Forks
  • 72 Watching

简要分析

热度分
8202
价值分
4549
活跃状态
归档
GitHub

语言占比

HTML
JavaScript
TypeScript

Release

  • Open-Source Release2023年4月1日
  • Open-Source Release2021年3月14日
  • Open-Source Release2021年2月14日
  • Open-Source Release2021年2月10日
  • Open-Source Release2021年2月8日

贡献者

jonasstrehlejonasstrehleszepeviktorszepeviktorjackkoskiejackkoskiejoel0joel0CommanderRootCommanderRootcl0necl0nejulianYamanjulianYaman

supercookie

Documentation

Website Status License

Fingerprint index N Redirects

Supercookie uses favicons to assign a unique identifier to website visitors.
Unlike traditional tracking methods, this ID can be stored almost persistently and cannot be easily cleared by the user.

The tracking method works even in the browser’s incognito mode and is not cleared by flushing the cache, closing the browser or restarting the operating system, using a VPN or installing AdBlockers. 🍿 Live demo.

About

💭 Inspiration

  • Paper by Scientists at University of Illinois, Chicago: par.nsf.gov
  • Article by heise: heise.de

🌱 Purpose

This repository is for educational and demonstration purposes only!

The demo of “supercookie” as well as the publication of the source code of this repository is intended to draw attention to the problem of tracking possibilities using favicons.

📕 Full documentation

Installation

🔧 Docker

requirements: Docker daemon

  1. Clone repository
git clone https://github.com/jonasstrehle/supercookie
  1. Update .env file in supercookie/server/.env
HOST_MAIN=yourdomain.com #or localhost:10080
PORT_MAIN=10080

HOST_DEMO=demo.yourdomain.com #or localhost:10081
PORT_DEMO=10081
  1. Run container
cd supercookie/server
docker-compose up

-> Webserver will be running at https://yourdomain.com

🤖 Local machine

requirements: Node.js

  1. Clone repository
git clone https://github.com/jonasstrehle/supercookie
  1. Update .env file in supercookie/server/.env
HOST_MAIN=localhost:10080
PORT_MAIN=10080

HOST_DEMO=localhost:10081
PORT_DEMO=10081
  1. Run service
cd supercookie/server
node --experimental-json-modules main.js

-> Webserver will be running at http://localhost:10080

Workwise of supercookie

📖 Background

Modern browsers offer a wide range of features to improve and simplify the user experience. One of these features are the so-called favicons: A favicon is a small (usually 16×16 or 32×32 pixels) logo used by web browsers to brand a website in a recognizable way. Favicons are usually shown by most browsers in the address bar and next to the page’s name in a list of bookmarks.

To serve a favicon on their website, a developer has to include an attribute in the webpage’s header. If this tag does exist, the browser requests the icon from the predefined source and if the server response contains an valid icon file that can be properly rendered this icon is displayed by the browser. In any other case, a blank favicon is shown.

<link rel="icon" href="/favicon.ico" type="image/x-icon">

The favicons must be made very easily accessible by the browser. Therefore, they are cached in a separate local database on the system, called the favicon cache (F-Cache). A F-Cache data entries includes the visited URL (subdomain, domain, route, URL paramter), the favicon ID and the time to live (TTL). While this provides web developers the ability to delineate parts of their website using a wide variety of icons for individual routes and subdomains, it also leads to a possible tracking scenario.

When a user visits a website, the browser checks if a favicon is needed by looking up the source of the shortcut icon link reference of the requested webpage. The browser initialy checks the local F-cache for an entry containing the URL of the active website. If a favicon entry exists, the icon will be loaded from the cache and then displayed. However, if there is no entry, for example because no favicon has ever been loaded under this particular domain, or the data in the cache is out of date, the browser makes a GET request to the server to load the site’s favicon.

💣 Threat Model

In the article a possible threat model is explained that allows to assign a unique identifier to each browser in order to draw conclusions about the user and to be able to identify this user even in case of applied anti-fingerprint measures, such as the use of a VPN, deletion of cookies, deletion of the browser cache or manipulation of the client header information.

A web server can draw conclusions about whether a browser has already loaded a favicon or not: So when the browser requests a web page, if the favicon is not in the local F-cache, another request for the favicon is made. If the icon already exists in the F-Cache, no further request is sent. By combining the state of delivered and not delivered favicons for specific URL paths for a browser, a unique pattern (identification number) can be assigned to the client. When the website is reloaded, the web server can reconstruct the identification number with the network requests sent by the client for the missing favicons and thus identify the browser.

Supercookie Header

conventional cookies

supercookie

Identification accuracy - 100%
Incognito / Private mode detection ❌ ✅
Persistent after flushed website cache and cookies ❌ ✅
Identify multiple windows ❌ ✅
Working with Anti-Tracking SW ❌ ✅

🎯 Target

It looks like all top browsers ( Chrome, Firefox, Safari, Edge) are vulnerable to this attack scenario.
Mobile browsers are also affected.

Current versions

Browser

Windows

MacOS

Linux

iOS

Android

Info
Chrome (v 111.0) ✅ ✅ ✅ ? ✅ -
Safari (v 14.0) - ✅ - ✅ - -
Edge (v 87.0) ✅ ✅ ❌ ❌ ✅ -
Firefox (v 86.0) ✅ ✅ ❌ ❌ ❌ Fingerprint different in incognito mode
Brave (v 1.19.92) ❌ ❌ ❌ ❔ ❌ -
Previous versions

Browser

Windows

MacOS

Linux

iOS

Android

Info
Brave (v 1.14.0) ✅ ✅ ✅ ✅ ✅ -
Firefox (< v 84.0) ✅ ✅ ❔ ❌ ✅ -

⚙ Scalability & Performance

By varying the number of bits that corresponds to the number of redirects to subpaths, this attack can be scaled almost arbitrarily. It can distinguish 2^N unique users, where N is the number of redirects on the client side. The time taken for the read and write operation increases as the number of distinguishable clients does.
In order to keep the number of redirects as minimal as possible, N can have a dynamic length. More about this here.

📌How to defend against?

The most straightforward solution is to disable the favicon cache completely. As long as the browser vendors do not provide a feature against this vulnerability it’s probably the best way to clear the F-cache.

  • Chrome • MacOS

    • Delete ~/Library/Application Support/Google/Chrome/Default/Favicons
    • Delete ~/Library/Application Support/Google/Chrome/Default/Favicons-journal
  • Chrome • Windows

    • Delete C:\Users\username\AppData\Local\Google\Chrome\User Data\Default
  • Safari • MacOS

    • Delete content of ~/Library/Safari/Favicon Cache
  • Edge • MacOS

    • Delete ~/Library/Application Support/Microsoft Edge/Default/Favicon
    • Delete ~/Library/Application Support/Microsoft Edge/Default/Favicons-journal

Other

🙎‍♂️ About me

I am a twenty five year old student from 🇩🇪 Germany. I like to work in software design and development and have an interest in the IT security domain.

This repository, including the setup of a demonstration portal, was created within two days as part of a private research project on the topic of “Tracking on the Web”.

💖 Support the project

ko-fi

Spread the world!

Liked the project? Just give it a star ⭐ and spread the world!

  • Bruce Schneier on schneier.com
  • Matthew Gault on vice.com
  • Rhett Jones on gizmodo.com
  • Dev Kundaliyaon on computing.co.uk
  • Barclay Ballard on techradar.com
  • Discussion on ycombinator.com
  • 🇩🇪 Andreas Proschofsky on derstandard.de
  • 🇩🇪 Dieter Petereit on t3n.de
  • 🇪🇸 ALVY on microsiervos.com
  • 🇧🇷 Felipe Demartini on canaltech.com.br
  • 🇧🇬 Daniel Despodov on kaldata.com
  • 🇫🇷 Guillaume Belfiore on clubic.com
  • 🇨🇳 study875 on cnbeta.com (Via archive.org)
  • 🇷🇺 ITSumma on habr.com
  • 🇷🇺 securitylab.ru
  • Seytonic on YouTube

评论

登录 后发表评论
暂无评论
GitRead 中文社区
深度解读 · 趋势洞察 · 价值精选

关于

关于我们联系我们编辑准则收录标准赞赏人员

发现

技术趋势新手训练营资源精选实战指南精选专题热门话题GitHub 文档

条款

隐私政策服务条款网站地图
26.9万收录项目
5.3万中文话题
155精选专题
发现技术价值,连接开源智慧
© 2026 GitRead · GitHub 中文社区 本站与 GitHub, Inc. 无隶属关系;GitHub 是 GitHub, Inc. 的商标。