yanazor/browser-fingerprint-lab
GitHub: yanazor/browser-fingerprint-lab
浏览器指纹采集与熵分析的教育研究原型,帮助用户理解浏览器指纹属性的可辨识性及其信息论特征。
Stars: 0 | Forks: 0
# 浏览器指纹实验室
[](https://github.com/yanazor/browser-fingerprint-lab/actions/workflows/checks.yml)
这是一个用于收集浏览器指纹属性并探索其分类熵的本科毕业设计原型的公开精简版本。
本仓库**不包含任何已收集的数据集**。每次安装都会在 `data/` 目录下创建各自的本地 SQLite 数据库,且该目录已被 Git 忽略。
## 收集的信息
当用户明确按下收集按钮后,本地演示会记录以下信息:
- User-Agent、平台和语言;
- 屏幕分辨率和颜色深度;
- 确定性的 canvas 哈希值;
- 当浏览器开放支持时,获取 WebGL 的供应商和渲染器信息;
- 少量的字体可用性样本及插件名称;
- 选定的 HTTP 请求头;
- 存储、cookie、Do Not Track 和广告拦截信号。
## 架构
```
Browser UI
│ explicit collection
▼
Flask JSON API
│
├── SQLite: local samples only
└── standard-library entropy analysis
```
## 本地运行
```
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python app.py
```
打开 `http://127.0.0.1:8080`。
数据库会自动创建在 `data/fingerprints.s3db`。
## 使用 Docker 运行
```
docker compose up --build
```
`./data` 目录会被挂载到容器中,因此本地样本在容器重启后依然保留,但不会被提交到 Git。
## 隐私与道德使用
本项目是一个教育性质的研究原型,并非用于生产环境的追踪、反欺诈或身份识别系统。请仅在有充分知情同意或您完全掌控的系统上运行它。在缺乏适当的法律和伦理依据的情况下,请勿公开已收集的数据集。
请参阅 [docs/PRIVACY.md](docs/PRIVACY.md)。
## 局限性
- 浏览器 API 和隐私保护机制会随着时间的推移而改变。
- 某些值可能会被掩盖、不可用或被刻意标准化。
- 熵值结果仅描述本地收集的样本特征。
- “信息增益”是保留的遗留成对启发式指标,不应将其解释为因果重要性或严格意义上的唯一性评分。
- 内置的开发服务器仅供本地演示使用。
## 历史说明
最初的项目是作为一个本科毕业设计原型创建的。当前公开版本移除了历史数据库和运行时构建产物,使用 JSON API 替换了原有的日志文件解析,移除了过时的前端依赖,并要求在收集前必须由用户执行明确的操作。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
标签:Flask, Python, SQLite, 信息熵, 安全监控, 无后门, 浏览器指纹, 请求拦截, 逆向工具, 隐私分析