浏览器指纹 (Browser Fingerprinting) 是把用户的浏览器和设备所具有的固有特征组合起来、识别每一位用户的技术,这些特征包括屏幕分辨率、已安装的字体、插件、时区、语言设置和 GPU 信息等。
Cookie 保存在浏览器中,用户可以删除或屏蔽;相比之下,指纹由浏览器发送给网站的信息以及页面脚本读取的信息构成,因此用户可能在没有察觉的情况下被追踪。EFF (Electronic Frontier Foundation) 的 Peter Eckersley 在 2010 年的论文中指出,在访问 Panopticlick 的注重隐私的用户的 470,161 个浏览器中,83.6% 的指纹是唯一的。
指纹的主要构成要素有 User-Agent 字符串、屏幕分辨率与色彩深度、时区与语言设置、已安装的插件与字体。此外还有 Canvas 指纹,即用 Canvas API 绘制图像后得到的哈希值;WebGL 指纹,即 GPU 的渲染特性;以及 AudioContext 指纹,即音频处理的特性。
在短链接服务的点击分析中,遇到无法使用 Cookie 的环境,例如第三方 Cookie 被拦截或处于隐私浏览状态时,有时会利用指纹来推算独立用户数。不过,欧盟第 29 条工作组在第 9/2014 号意见 (2014 年 11 月通过) 中指出,要求访问用户终端信息须获同意的 ePrivacy 指令第 5 条第 3 款同样适用于指纹,因此必须遵守隐私法规。
作为针对指纹的对策,Firefox 用 Enhanced Tracking Protection 拦截已知的指纹脚本。Safari 的引擎 WebKit 通过只向网页提供操作系统自带字体和 Web 字体、User-Agent 字符串不随小版本更新而改变等改动,减少指纹的线索。Brave 浏览器则把部分 API 的值随机化 (据 2026 年 10 月时 WebKit 与 Brave 的文档)。