怎么验证指纹环境是否正常?用哪些检测网站?
自检不是「跑个网站看个分数」,它只回答三个问题:这套值有没有自相矛盾、同一个窗口每次打开是否一致、不同窗口之间是否互不相同。前两个问题检测站能帮你看,第三个问题任何检测站都替你回答不了——必须开两个窗口分别跑一次,把结果放在一起横向比。而最需要提前说清楚的一点是:检测站全绿只说明浏览器交给页面的这些值没有明显破绽,它不等于不会被关联,后面会专门讲这件事。
先明确自检在验什么
检测站的能力范围其实很窄。它是一个普通网页,能看到的东西和任何一个网站一样多:你上报的 UA、屏幕、语言、时区,让你的电脑现场画图算出来的那几个哈希,加上它自己观测到的请求来源 IP。它看不到你的账号历史,也不知道你昨天用哪个窗口登录了哪家店。所以自检能确认的只有三件事,对应三个方向。
- 内部不打脸(自洽):同一台电脑对同一个问题不能给出两个答案。声明是 Mac 却报出 Windows 独显、时区名与偏移量对不上、HTTP 层与 JS 层的语言不同,都属于这一类。
- 纵向相同(稳定):同一个窗口今天打开和下周打开,读出来的值要一样。这一项要靠你自己隔天再测一次才能验,单次访问看不出来。
- 横向不同(隔离):两个窗口之间,Canvas、WebGL 这类按窗口生成的值必须不一样。撞了就说明隔离没生效,这是最该先排掉的故障。
三个方向里,检测站直接帮得上忙的只有第一个。第二和第三个它只提供读数,判断得你自己做——把两次、两个窗口的读数摆在一起比。这也是为什么「跑一遍检测站」和「做过自检」是两件不同的事。
常用检测站各看什么
| 站点 | 强在哪 | 重点看什么 | 局限 |
|---|---|---|---|
| BrowserLeaks | 分项最全,每一项单独一页 | IP、JavaScript、WebRTC、Canvas、WebGL、字体、TLS 各页 | 不给总分,要自己逐项看 |
| Amiunique | 给出每个属性的相似度比例 | 相似度低到异常的那几项 | 样本库以隐私用户为主,比例仅供参考 |
| creepjs | 专测篡改痕迹与前后矛盾 | 它标出的 lies / 不一致条目 | 判定偏严,正常配置也常被扣分 |
| Pixelscan | 一致性与代理检测视角 | IP / 时区 / 语言的 mismatch 提示 | 不公开评分规则,结论只能当参考 |
| Whoer | 一个笼统的百分比,看得快 | 泄漏与时区语言那几行 | 百分比口径不透明,别当目标 |
| ipleak | IP / DNS / WebRTC 泄漏 | WebRTC 那栏的公网 IP | 只覆盖网络层,不看硬件指纹 |
| ToDetect | 中文界面,IP 与指纹一起给 | IP 时区与本地时区、语言两处、黑名单 | 同样是第三方判断,不代表平台口径 |
用法上不建议一次全开。选两三个就够:一个看分项(browserleaks 这类),一个看一致性(pixelscan 或 ToDetect 这类),一个看泄漏(ipleak 这类)。全都跑一遍除了耗时间,还会因为各站判定口径不同互相打架——一个说没问题、一个扣了 30 分,你就得花半天纠结哪个对,而它们谁都不是平台。
五类指标,读法完全不同
检测站上的数字看着都像分数,实际分五类,混着读就会读出错误结论。
一、唯一性 / 相似度百分比
这类数字的含义是「在这个站自己的样本库里,有多少比例的访客和你这一项相同」。关键在样本库:会主动跑指纹检测站的人,本身就以隐私爱好者、技术人员、同行为主,和亚马逊买家群体差别很大。所以「你在 10 万人里是独一无二的」这句话,说明的是你在这个小池子里少见,推不出你在目标平台的正常用户里少见。这类数字最合理的用法是纵向自比:同一个站,改配置前后各测一次,看变化方向,而不是盯绝对值。
二、信任分 / 通过率
这类总分是站点自己的启发式规则算出来的,通常在测「看起来像不像被改过」:某个接口的返回值是不是被脚本覆盖过、函数的原生特征还在不在、UA 声称的浏览器与实际支持的特性对不对得上。注意它测的是篡改痕迹,不是真实感。用指纹浏览器就一定有改写,被这类规则扣分是常态;分数低不必然有问题,分数高也不代表在平台侧安全。
三、泄漏类:二元结果,必须过
WebRTC 公网 IP、DNS 出口这两项没有中间态:要么和你的代理出口一致,要么就是漏了。这是自检里唯一「不通过就别用这个窗口」的硬性项。WebRTC 为什么会绕过代理、三种模式怎么设,看《WebRTC 会泄漏真实 IP 吗?三种模式怎么设》。
四、一致性类:成对比较,不看单值
这类指标在页面上通常成对出现:IP 时区 vs 本地时区、IP 归属国 vs 语言、请求头语言 vs JS 语言列表。看的是两边一不一样,任何一边的单独取值都无意义。哪些组合算硬矛盾、哪些属于可接受的差异,看《时区、语言、IP 不一致会被识别吗?怎么保持一致》。
五、哈希类:绝对值毫无意义,只能对比
Canvas、WebGL 图像、AudioContext、ClientRects 这几项给出的是一长串哈希。这串值本身好不好看完全不重要,重要的是三次对比:同窗口刷新两次要相同;同窗口关掉重开要相同;换另一个窗口要不同。哈希背后的采集原理,看《Canvas、WebGL、AudioContext 指纹是怎么被采集的?噪音模式怎么选》。
一次完整自检的操作顺序
- 先在客户端里把代理检测跑通,确认出口 IP 和归属地是你要的那个。IP 不对,后面全部白测。
- 打开窗口,跑一个泄漏检测页,确认 WebRTC 显示的公网 IP 与出口 IP 一致,DNS 出口没有落回本地运营商。
- 跑一致性检查:IP 归属国、IANA 时区名、请求头语言、JS 语言列表四项互相对得上。
- 抄下 Canvas、WebGL、Audio、ClientRects 四个哈希,以及分辨率、CPU 核心数、显卡型号几项,记到窗口备注里。
- 在同一个窗口里刷新一次,再关掉重新打开一次,两次的四个哈希都要和上一步相同。这一步验的是纵向稳定。
- 换另一个窗口跑同一个检测页,把四个哈希与第 4 步的记录比对,必须全部不同。这一步验的是横向隔离,也是最容易被跳过的一步。
- 扫一眼 UA 声明的系统与显卡型号、字体列表是不是同一个平台的东西,别出现 Mac 报 NVIDIA 独显这种组合。
- 确认没有哪一项显示为空、unavailable 或读不到——全屏蔽比略有不一致更显眼。
第 5、6 两步是全流程里最有价值的部分,也是绝大多数人漏掉的部分:它们不需要任何专业工具,只需要你把读数记下来再比一次。隔一周回来重跑第 5 步,价值更高——真正会出问题的是「某次升级之后哈希悄悄变了」这种情况,而它只有跨时间对比才能发现。
结果对照表:看到什么,说明什么
| 现象 | 说明什么 | 优先级 |
|---|---|---|
| 两个窗口 Canvas 哈希相同 | 按窗口的隔离没生效 | 高,先修这个 |
| 同窗口两次哈希不同 | 噪音不稳定,等于每次换台电脑 | 高 |
| WebRTC 公网 IP 与出口 IP 不同 | 真实 IP 泄漏 | 高 |
| IP 时区与本地时区不一致 | 一致性没配好或没跟随 IP | 高 |
| 请求头语言与 JS 语言列表不同 | 改了一处漏了一处 | 高 |
| 机器人检测标红 | 有自动化/调试痕迹,用 RPA 时尤其要看 | 高 |
| 某项显示 unavailable 或空 | 屏蔽过度,读不到本身是特征 | 中 |
| IP 命中黑名单或风险评分偏高 | 代理质量问题,不是指纹问题 | 中 |
| 唯一性显示 100% | 参考价值有限,别追着刷 | 低 |
| 信任分被扣但各分项都对得上 | 该站规则偏严,可接受 | 低 |
这张表的排序本身就是修复顺序。前六行是环境层面真实的功能性问题,值得停下来处理;后四行更多是站点口径问题,纠结它们的收益很低。注意第八行:IP 黑名单命中该去换 IP,不该回头改指纹,两件事的病根不同——怎么看 IP 纯净度,看《住宅 IP、机房 IP、移动 IP 怎么选?IP 纯净度怎么看》。
说清楚:全绿、满分,不等于不会被关联
这是本篇最重要的一段。检测站看到的,是浏览器愿意交给一个普通网页的那部分信息。平台的风控模型手上有的东西多得多,而且绝大部分你在任何检测站上都看不到:
- 账号历史:注册时间、注册时用的 IP 与设备、历史登录轨迹、过去有没有被处理过。
- 收款与身份材料:银行账户、收款账号、税号、营业执照、身份证件——同一套材料出现在多个账号上,和浏览器指纹完全无关。
- 物流与地址:发货地址、退货地址、仓库、承运商账号,甚至包裹上的联系电话。
- 行为特征:登录时段、操作节奏、打字与鼠标习惯、常用功能路径、上架描述与图片的复用。
- 平台内部关联:站内消息、评价往来、优惠券与推广活动的交叉使用、买卖双方之间的历史交互、投诉与申诉记录。
任何一条命中,都足以在平台侧把两个账号连起来,而这时你的检测站截图依然是全绿的。所以准确的说法是:检测站全绿意味着「环境这一层没有明显破绽」,仅此而已。它是必要条件,不是充分条件。反过来也成立——某个站给你打了低分,也不一定真有问题,因为它的样本和判定标准与平台无关。检测站更像体温计,不是全套体检报告。浏览器管不到的那些关联因素,《用了指纹浏览器就一定不会被关联吗?》里有完整清单。
六个实际会踩的坑
- 用系统自带的 Chrome 打开检测站,然后以为测的是那个窗口。检测站必须在要验证的那个窗口里打开。
- 只测一次就再也不管。换代理之后要重测一致性,客户端升级内核之后要重测哈希稳定性。
- 没刷新就下结论。检测站也有缓存和 CDN,遇到读数明显异常先强刷一次再看。
- 顺手点了「允许」。检测站会申请地理位置、媒体设备权限,随手允许就等于主动交出更多信息,测完记得把权限收回。
- 把检测站的建议当配置指南。它们的优化建议面向的是普通隐私用户(少给信息、多屏蔽),和多账号运营要的「像个普通用户」方向常常相反。
- 多个检测站同时开。权限弹窗互相抢、结果互相打架,还容易把某个站的口径当成通用标准。
这些内容不在本篇范围内
每一项参数具体该怎么设、七类参数的默认策略,看《比特浏览器能改哪些浏览器指纹?完整参数清单》;Canvas 与 WebGL 哈希背后的采集原理和噪音取舍,看《Canvas、WebGL、AudioContext 指纹是怎么被采集的?噪音模式怎么选》;时区语言 IP 的交叉校验规则,看《时区、语言、IP 不一致会被识别吗?怎么保持一致》;WebRTC 泄漏与三种模式,看《WebRTC 会泄漏真实 IP 吗?三种模式怎么设》。本篇只回答「怎么验、看哪些站、结果怎么读」这一个问题。
