我承认我上头了,我把这种“资源合集页”的链路追完了:你点一下,它能记住你的设备指纹
我承认我上头了——把那种“资源合集页”的链路追完了,发现一个简单的点击行为,竟然能把你的设备指纹记住,并且在后续访问里被反复用来识别你。下面把我一路追查到的细节、原理、检测方法和可行的防护措施写清楚,方便你判断自己到底暴露了什么、还能做些什么。

一开始:什么是“资源合集页”的链路?
- 常见形式是:某个页面列出一堆资源(图片、文档、脚本、下载链接),每个链接都先通过某个中间域名或短链服务跳转,再到最终资源。
- 那些中间环节往往会注入第三方脚本或触发请求,目的不是仅仅统计点击量,很多情况下会同时收集设备环境信息以生成指纹。
设备指纹到底采集了什么? 指纹并非只有 User-Agent;常见采集项包括:
- 浏览器 headers(User-Agent、Accept、Accept-Language 等)
- 屏幕分辨率、色深、设备像素比
- 已安装字体、插件、mimeTypes
- Canvas / WebGL 渲染特征(通过绘图差异生成散列)
- 时区、语言、系统平台
- 可用的媒体解码器或音频 API 差异
- 是否启用硬件加速、是否有触摸支持
- 浏览器指纹库还可能读取:localStorage、sessionStorage、IndexedDB、Service Worker、cookie、ETag、cache 行为等 把这些数据合成后,就能生成一个相当稳定的“指纹”,即便换 IP、清除 cookie,也常常能将你识别出来。
我实际看到的链路长什么样
- 点击资源链接 -> 请求到中间域名(redirector.example) -> 该域名快速加载一个小脚本来收集指纹并把 ID 写入 localStorage/indexedDB,同时在重定向 URL 上附带一个参数(比如 ?rid=abc123) -> 最终跳转到资源页。
- 后续任何加载 redirector.example 的地方都会读取 localStorage 或再次指纹确认,从而把不同页面的访问“拼接”成同一个设备的行为轨迹。
- 有时并不需要 JS:服务器端会根据请求头(尤其复杂的 Accept / Accept-Language / TLS 指纹)尝试做简单匹配,但 JS 级的采集更精细。
危害与场景
- 交叉网站追踪:不同站点如果都加载同一套收集脚本或中间跳转域,就能把你在多站点的行为归并。
- 广告和分析画像被强化:更稳定的标识意味着更精确的画像投放和频次控制。
- 去匿名化风险:在足够多的信息交集下,指纹可以帮助把匿名访问关联到已知身份(比如登录行为)。
- 安全滥用:类似技术也能被用于欺诈检测或构建黑名单,误判可能导致访问受限。
如何检测自己是否被指纹化? 可以用下面几种方式快速判断: 1) 使用浏览器开发者工具(Network / Application):
- 在点击可疑链接前后,观察有没有请求发往中间域、是否有 query 参数像 uid/rid/token。
- 检查 localStorage、IndexedDB、Service Workers、cookie 是否被写入新项。 2) 用检测网站:
- amiunique.org、coveryourtracks.eff.org(Panopticlick)等站点可以给你一个指纹唯一性报告。 3) 观察行为关联:
- 在隔离的浏览器或隐私窗口打开同一链接,比较日志和存储差异;如果普通窗口和隐身窗口显示不同的标识行为,说明有持久化手段在工作。 4) 静态观察页面代码:
- 查看页面脚本是否调用 canvas、WebGL、AudioContext、enumerateDevices、navigator.plugins、Intl 等 API。
能做什么来减少被记忆的概率 (下面是可直接执行的对抗与防护建议)
- 阻止第三方脚本与跨站点请求:
- 安装并启用内容屏蔽扩展(如 uBlock Origin)并使用严格过滤规则;阻止未知域名的脚本加载。
- 使用防指纹化浏览器或设置:
- Tor Browser、Brave(开启防指纹)或 Firefox(开启抗指纹跟踪选项)会降低指纹的稳定性。
- 把 JavaScript 作为控制对象:
- 对于不信任的站点可以禁用 JS(NoScript 等扩展)或只允许必要脚本。
- 定期清理或隔离存储:
- 使用容器标签(Firefox Multi-Account Containers)或不同浏览器来把站点隔离;定期清空 localStorage、IndexedDB、cookie。
- 阻断 Canvas/WebGL 等 API(或提示权限):
- 有扩展可以劫持 canvas 调用并返回空或伪随机值,打乱指纹一致性。
- 采用隐私搜索与广告阻断:
- 使用隐私优先的 DNS、广告拦截和反追踪扩展,减少被第三方引用的可能性。
- 谨慎点击未知的资源合集或短链接:
- 看到经由“redirector”或短链服务的链接时,优先在隐私窗口中打开或先用链路检查工具看目标。
实战小步骤:用 DevTools 复现我看到的流程 1) 打开浏览器 DevTools -> Network + Application 面板。 2) 清空 site 的 storage(localStorage、IndexedDB、cookie)。 3) 点击资源合集页的某个链接,观察 Network 中有没有跳转到中间域(redirector),以及是否出现含 uid/rid 的参数。 4) 切回 Application 检查是否有新条目写入 localStorage 或 IndexedDB,或是 Service Worker 被注册。 5) 在另一个站点重复加载相同中间域,验证是否有相同 ID 被访问或读取。
结语:当你点下那个看似无害的“资源合集”链接时,可能触发的不只是一次下载或预览,而是一次设备级别的“自我登记”。知道原理后,面对类似页面能更有底气地判断是否要继续点击和怎样最小化风险。想要我帮你把某个具体链接做个快速检测(只做被动观察的宣告性分析,不进行任何攻击性操作),可以把页面地址发来,我手把手带你看网络请求和存储变化。
