浏览器指纹:网站如何在不用 Cookie 的情况下追踪你

网络安全 次阅读

什么是浏览器指纹?

浏览器指纹(Browser Fingerprinting)是通过收集你的浏览器和设备配置信息,组合生成一个唯一标识符的技术。与 Cookie 不同,指纹不需要在你的设备上存储任何内容——只要你访问网站,网站的 JavaScript 就可以悄悄读取你的浏览器特征并生成指纹。

浏览器指纹包含哪些信息?

使用 tool.tl 浏览器指纹检测工具 可以查看你的浏览器当前暴露了哪些信息:

信息类别具体内容唯一性
User Agent浏览器名称、版本、操作系统
屏幕分辨率1920×1080、视口大小低-中
时区Asia/Shanghai、America/New_York
语言zh-CN、en-US
已安装字体系统字体列表
Canvas 指纹GPU 渲染的微小差异极高
WebGL 指纹显卡型号和驱动差异极高
音频指纹音频处理的微小差异
插件列表已安装的浏览器扩展中-高
硬件并发数CPU 核心数低-中

Canvas 指纹原理(最难绕过的技术)

网站在一个隐藏的 <canvas> 上绘制一段特定文字,然后读取 PNG 数据。由于不同 GPU、驱动、操作系统对图形渲染的处理存在极其微小的差异,相同代码在不同设备上产生的像素值略有不同,形成近乎唯一的标识。

const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.fillText('fingerprint test 🎨', 10, 10);
const hash = canvas.toDataURL(); // 每台设备略有不同
对比项Cookie 追踪指纹追踪
存储位置用户设备服务器端
用户可清除✅ 可以❌ 无法
隐私模式有效✅ 有效⚠️ 大多无效
跨设备追踪❌ 无法⚠️ 部分可以
准确性高(存在删除风险)中-高(随时间可能漂移)

如何减少浏览器指纹追踪?

1. 使用 Brave 浏览器

Brave 内置指纹随机化(每次会话返回随机的 Canvas、WebGL 数据),是目前对指纹追踪防御最好的主流浏览器。

2. 使用 Firefox + 隐私设置

Firefox 在 about:config 中启用 privacy.resistFingerprinting,可以标准化大多数指纹数据。

3. 使用 Tor Browser

Tor Browser 将所有用户的指纹标准化为相同值,是指纹匿名性最高的选择,但网速较慢。

4. 安装隐私扩展

  • uBlock Origin:阻止追踪脚本
  • Privacy Badger:自动学习和阻止追踪器
  • Canvas Blocker:干扰 Canvas 指纹

常见问题(FAQ)

Q:无痕/隐私模式能防止指纹追踪吗?

A:不能有效防止。无痕模式只阻止在本地存储浏览历史和 Cookie,但 Canvas、WebGL、字体等指纹信息仍然可被读取,指纹值与正常模式下基本相同。

Q:VPN 能防止指纹追踪吗?

A:VPN 只隐藏你的 IP 地址,不影响浏览器指纹。指纹追踪不依赖 IP,因此 VPN 对指纹追踪几乎无效。

Q:是否所有网站都在使用指纹追踪?

A:大型广告网络和部分电商平台确实使用指纹技术,尤其是在反欺诈和反机器人场景中。普通内容网站较少使用,但很难从外部判断。