浏览器指纹是什么?原理、组成与检测
浏览器指纹是网站根据浏览器和设备暴露的多项特征,组合形成的识别信息。即使没有原来的 Cookie,网站也可能据此关联两次访问。但它不是姓名或设备序列号,指纹相同并不能单独证明是同一个人。
本文另有 English 版本

本页目录
浏览器指纹如何形成和识别访问?
浏览器指纹识别通常有三个环节:读取当前环境的特征,将特征组合起来,再与之前的访问记录比较。这里的“识别”可能只是判断环境相似,不一定是在确认某个真人的身份。
例如,一个网站读取到浏览器版本、屏幕尺寸、语言和 WebGL 渲染器,另一个网站还测试了 Canvas、字体和音频。它们采集的内容不同,形成的结果也可能不同。不存在所有网站共用的“全球浏览器指纹编号”。
有些系统把特征转换成一串哈希值。哈希是对输入计算得到的摘要,并不是浏览器里预先存着的设备身份证。输入发生变化时,哈希可能变化;相同哈希也需要结合采集方法和其他信息解释。
网站还可能比较部分特征是否相近,而不是要求整串结果完全一致。有关信息如何读取,可继续看网站如何获取浏览器信息。
浏览器指纹包含哪些信息?
不同网站不会采集同一套信号,浏览器也不一定允许网页读取所有项目。常见信号可以分为以下几类。
| 信号 | 网站通常如何获得 | 什么变化可能影响结果 |
|---|---|---|
| 浏览器与系统 | User-Agent、Client Hints、功能支持情况 | 浏览器升级、系统变化、信息限制 |
| 屏幕与设备 | 分辨率、像素比、部分硬件提示 | 显示设置、屏幕或设备变化 |
| 语言与时区 | 浏览器语言、系统时区和日期格式 | 系统设置、浏览器配置 |
| Canvas | 绘制特定文字或图形,再读取渲染结果 | 字体、图形环境、浏览器保护机制 |
| WebGL | 图形接口返回的信息与渲染特征 | GPU、驱动、浏览器实现与信息限制 |
| 字体 | 测试候选字体或比较文本尺寸 | 字体安装、字体替换与访问限制 |
| 音频 | 用 Web Audio 处理测试信号并比较结果 | 音频实现、版本与隐私保护 |
字体检测通常是在测试一组候选字体,并非直接读取完整的系统字体清单。音频测试也不一定使用麦克风:EnvTrace 使用离线音频处理生成测试结果,不采集您的声音。
这些信号单独看可能很常见,组合后可能更容易区分环境。但哪一项最有区分度,需要具体样本和方法支持,不能一概而论。进一步解释见 Canvas 指纹、WebGL 指纹与字体和文本渲染。
浏览器指纹、Cookie 和 IP 有什么区别?
Cookie 是网站让浏览器保存、并在符合条件的请求中发送的数据。浏览器指纹来自对环境特征的观察;IP 则是网站看到的网络出口地址。它们可以一起参与判断,但来源不同。
| 对比项 | Cookie | 浏览器指纹 | 公网 IP |
|---|---|---|---|
| 来源 | 网站写入浏览器的数据 | 浏览器与设备可观察的特征 | 当前网络连接的出口 |
| 常见用途 | 登录会话、偏好、访问标识 | 区分或关联环境、辅助风险判断 | 网络位置、连接与信誉判断 |
| 清除 Cookie 后 | 被清理的 Cookie 不再可用 | 许多特征仍可重新读取 | 通常不变 |
| 更换网络后 | 通常仍保留 | 设备侧特征通常仍在 | 可能改变 |
清 Cookie 可以移除一条关联线索,换 IP 可以改变网络信息,但两者都不是通用的“重置身份”操作。完整对比可看 Cookie 与浏览器指纹有什么区别。
网站为什么收集浏览器指纹?
网站可能用环境特征辅助反欺诈、发现异常登录、区分自动化访问,或进行广告和访问关联。是否采集、使用哪些信号、保留多久,都取决于具体网站。
例如,账号安全系统发现一次登录的环境与历史记录不同,可能要求补充验证。但检测到某项变化不等于账号一定会受限:平台还可能考虑登录位置、账号状态、访问行为等信息。EnvTrace 的检测结果也不代表某个平台的内部判断。
跨站追踪还需要相应的数据收集和关联渠道。仅仅两家网站显示相同的某项特征,并不能证明它们已共享访问记录。
浏览器指纹能识别同一个人吗?
浏览器指纹本身描述的是可观察的环境。一个人可以使用手机、电脑和多个浏览器;不同的人也可能共用同一个浏览器。因此,环境与真人并不一一对应。
如果网站将环境特征和登录账号、邮箱等信息结合,可能把一次访问关联到已知身份。此时判断来自多类信息,不是指纹单独提供了姓名。
“在某次测试样本中唯一”也不等于“全世界唯一”。同样,指纹不同不代表访问无法关联。可继续看设备指纹与浏览器指纹能识别一个人吗。
清 Cookie、无痕模式和换 IP 会改变指纹吗?
| 操作 | 主要改变什么 | 不能由此直接推断什么 |
|---|---|---|
| 清除 Cookie | 所选范围内的 Cookie 数据 | 网站无法重新关联访问 |
| 打开无痕窗口 | 与普通窗口隔离的临时会话;可能增加保护 | 所有指纹信号消失或完全不变 |
| 使用 VPN 或代理 | 被覆盖流量的网络出口 | 浏览器和设备特征一起重置 |
| 更新或更换浏览器 | 版本、实现和部分可观察特征 | 网站一定将您当成新人 |
如何检测和理解自己的浏览器指纹?
检测的用途是看清当前测试读到了哪些信息,以及同一测试条件下什么发生了变化。
- 在普通窗口打开 EnvTrace 浏览器指纹检测,记录 Canvas、WebGL、字体、屏幕、语言和时区等字段。
- 保持网络和设置不变,在同一页面复测。先确认结果是否稳定,避免把偶然失败或数据缺失当成环境变化。
- 如果要比较无痕模式,再在同一浏览器的无痕窗口打开同一检测页面。比较具体字段,而不只看总分或一串哈希。
- 记录测试日期、浏览器版本和变更条件。一次只改变一个条件,才更容易解释差异。
EnvTrace 的 Canvas 哈希来自固定绘制内容,字体结果来自候选字体测试;其他网站若使用不同输入,结果可能不同。空值也可能来自不支持、被限制或测试失败,不能直接解释为“无法被识别”。
检测页面只能描述自身采集的信号,不会告诉您其他网站是否已在追踪,也不能证明环境对某个平台一定安全。
如何减少浏览器指纹追踪?
可以从浏览器已有的隐私保护开始:保持更新,使用适合自身需求的跟踪保护,并限制不必要的追踪脚本。部分浏览器通过减少暴露、标准化返回值或随机化特征降低关联能力,具体效果取决于实现。
随意修改大量参数或安装多个修改指纹的扩展,并不保证更难追踪。某些组合还会影响兼容性,或让环境表现更少见。有关技术路线可看浏览器如何降低指纹识别。