学习目标
阅读本文后,您将能够:
- 分清少提供、看起来差不多和结果不稳定这三条路
- 判断无痕模式算不算这三条路
- 理解随机结果可能在同一页里前后对不上
少提供一些信息
网站读不到的项,就没法拿来区分这个浏览器。
有的浏览器会缩短 User-Agent,不再写明完整的系统版本。有的不向页面报告精确的设备内存。有的限制页面试探本机安装了哪些字体。一旦不提供这些项,或者只给出一个粗略的值,网站能用来比较的材料就少了一块。
让更多人看起来差不多
很多人交出同一组值时,网站就很难把其中一个人分出来。
同一版本的浏览器,交出的 User-Agent 相近,接口集合也相近。网站在大量用户身上读到同一组值,这组值就不再指向某一个浏览器。缩短 User-Agent,走的就是这条路:声明写得笼统了,交出相同声明的人就多了。
让结果不稳定
同一项前后读到的结果如果会变,网站就很难用它长期认出这个浏览器。
有的浏览器给画布或音频加上噪声。您这次打开页面,网站读到一个结果;下次打开,结果可能不同。这一项就很难当作长期不变的标记。
噪声也可能被看出来。网站在同一页里把画布再读一次,如果两次结果对不上,就知道这项不稳定。EnvTrace 的稳定性检查,就是在同一页里把画布、音频和 WebGL 再读一次,看前后两次读到的是否一致。
这和按窗口改参数有什么不同?
降低指纹识别,是让网站更难用这些值把这个浏览器从很多人里分出来。指纹浏览器是让每个窗口按配置交出您填的那一套。如果一个窗口既改了参数,又让画布每次读出来都不同,网站在这个窗口里读到的值可能互相对不上。
三条路各做什么
- 少提供:网站读不到的项,无法用来区分。
- 看起来差不多:很多人交出同一组值。
- 结果不稳定:同一项前后可能不同,同一页里读两次也可能对不上。
常见问题
无痕模式算降低指纹识别吗?
不算。无痕少留的是历史和 Cookie。屏幕、版本和画布结果通常还是这个浏览器原来的那一组。
给画布加噪声之后,检测会怎样?
网站在同一页里两次读到的画布结果对不上时,EnvTrace 的稳定性检查会反映这个差别。
把 User-Agent 缩短,指纹就没有了吗?
没有。缩短的只是浏览器声明这一项。屏幕、画布和其他照常提供的项,网站还是能读到。