PowerScan
ZH

Chrome 配置文件与反检测浏览器配置文件:真正的区别在哪里

指纹浏览器 · 阅读约 9 分钟 · 作者:PowerOps

图片:Unsplash

Chrome 配置文件隔离的是数据,不是设备、时钟或网络连接。本文讲清这条界线究竟划在哪里,以及什么时候值得跨过去。

Chrome 配置文件隔离的是数据,不是设备。这就是简短的答案,也解释了为什么基于 Chrome 配置文件搭建的多账号方案一开始运转良好,随后却悄无声息地失效。

你在 Chrome 中创建的每个配置文件,都会在磁盘上拥有自己的一个文件夹。Cookie、历史记录、已保存的密码、扩展程序和书签都存放在这个文件夹里,不会外流。而文件夹之下的一切都是共享的:同一个操作系统、同一套图形栈、同一组字体、同一个时钟、同一条网络连接。读取设备信号的网站,看到的是同一台电脑在替你名下的每个配置文件作答。

Chrome 配置文件真正隔离了什么

Chrome 配置文件的初衷是让一家人共用一台笔记本,就这个用途而言它们做得很好。它们提供的隔离在其范围内是真实有效的。

这就覆盖了身份中的存储这一半,而且覆盖得很到位。如果你的问题只是个人账号和客户后台共用一个浏览器导致被登出,Chrome 配置文件就能解决,读到这里就可以了。

每个 Chrome 配置文件共享什么

人们很晚才发现的一点是:Chrome 配置文件只围着数据划了一条边界,除此之外什么也没围。在这条边界之下,每个配置文件上报的都是同一台机器,因为它本来就是同一台机器。

设备身份

打开两个 Chrome 配置文件,让每个都报告自己是什么,得到的答案完全一样。屏幕尺寸和像素比。报告的处理器核心数。平台和 User-Agent。WebGL 返回的显卡字符串。页面在屏幕外绘制文字再读回像素所得到的 Canvas 哈希。让振荡器穿过浏览器音频图所得到的音频哈希。通过测量候选字体中的文字推断出的字体列表。这些值没有一个存放在配置文件夹里,所以切换配置文件时没有一个会变。

两个账号报告出相同的 Canvas 哈希、相同的 WebGL 渲染器字符串和相同的字体列表,就是同一台电脑上的两个账号。网站不需要推断,它读到的是事实。

网络路径

每个 Chrome 配置文件都从同一个地址出网。代理设置属于浏览器实例,位于该实例内部的配置文件无法拥有自己的代理。在 Windows 和 macOS 上,Chrome 使用系统代理,而命令行参数则作用于浏览器的一切行为。于是你所有的配置文件都从同一个地方、同一个国家、在同一时刻抵达网站。

时钟与区域设置

时区来自操作系统。在大多数环境中,主语言也是如此。为某个配置文件改动其中任何一项,就等于为所有配置文件、乃至这台电脑上的一切都改了。这是最隐蔽的一项。代理在一个国家、时钟在另一个国家,是非常刺眼的不一致,而且即便你用别的办法解决了网络路径,Chrome 也没有办法只为单个配置文件修正时钟。

为什么共享的那一半很重要

建立关联的成本很低。网站不需要证明两个账号属于同一个人,只需要一个值得去看的理由,而在自称互不相关的多个账号之间出现一致的设备值,就是这样的理由。

还有第二重代价,而且来得更早。账号数量超过寥寥几个之后,Chrome 配置文件本身就有一些实际的失效模式:

逐层对比

层级Chrome 配置文件反检测配置文件
Cookie 和网站存储每个配置文件各自独立每个配置文件各自独立
历史记录、书签、扩展程序每个配置文件各自独立每个配置文件各自独立
Canvas、WebGL 和音频值本机所有配置文件共享按配置文件生成并保存,每次打开都保持不变
字体、屏幕和平台本机所有配置文件共享按配置文件设置,作为一套自洽的组合生成
时区和区域设置取自操作系统按配置文件设置,与线路所报告的国家一致
网络路径整个浏览器共用一条线路每个配置文件一个代理,账号接入之前先经过测试
组织管理一排头像名称、编号、备注、分组、文件夹和搜索
自动化启动参数本地 API:启动配置文件并返回调试端点

什么时候 Chrome 配置文件就足够了

经常如此。把这一点说清楚,比一段更长的推销更有价值。

在所有这些情形中,共享的设备身份都是准确的。你是同一台电脑上的同一个人,每个配置文件报告同一台机器,是对现实的如实陈述。没有任何原本不存在的东西被推断出来。

一旦这些账号本应互不相关,共享的那一半就不再准确了:不同的客户、不同的店铺、各自应当看起来像不同用户的不同测试环境。此时相同的设备值描述的是一种你从未打算呈现的关联。

反检测配置文件增加了什么

反检测配置文件保留了 Chrome 配置文件已有的一切,然后接管 Chrome 留作共享的那三层。

三者的要点都是一致性。每次打开都报告不同设备的配置文件,描述的是一台没有人拥有的硬件。真正有用的目标,是一台看起来普普通通、然后每次访问都原样不动的设备。

组织管理这一半,在有人体会过没有它的日子之前,总是被低估。配置文件带有名称、编号、备注和标签,归入分组和文件夹,可以搜索,所以任何人在办公室里大声说一句“42 号配置文件”,同事就知道指的是哪一个。从列表行中打开配置文件,它的身份和线路也随之而来,不存在需要有人记得去设置什么的环节。

从 Chrome 配置文件迁移出来

人的本能是把 Chrome 配置文件夹整个复制过去然后继续用。请克制。复制过去的文件夹带着 Cookie 和仍在生效的会话,却把它们交给一个报告着不同设备的浏览器,而这些会话当初是在另一台设备上建立的。这种变化是看得见的,而且发生在第一次打开时,这是最糟糕的时机。

更慢的路径反而更稳妥。

  1. 为每个账号写下一行记录,即使目前一个 Chrome 配置文件里放着好几个账号,也要分别计数。
  2. 先建好代理库。添加端点,测试它们,并记录每一个实际报告的国家。服务商对其端点的描述往往过于乐观。
  3. 为每个账号创建一个配置文件,并在首次登录之前分配好线路。首次会话决定了该账号“正常”的样子,所以第一次就做对是值得的。
  4. 将时区和区域设置调整为与线路所报告的国家一致,然后不要再动。
  5. 在新的配置文件中重新登录。是的,这意味着每个账号都要走一次二次验证,可能还要邮件确认。这是一次性的成本,换来的是一个真正在今后继续使用的设备上建立的会话。
  6. 在几周时间里分批迁移账号。在某个星期二下午一次性全部迁完,等于让每个账号的使用模式同时发生变化。
  7. 把 Chrome 留给它擅长的事:你自己的邮箱、你自己的网银,以及那些坦坦荡荡属于你自己的账号。

在关闭旧配置文件之前,先导出你需要的东西。书签和已保存的密码可以干净地从 Chrome 导出。Cookie 则值得留在原地不带走,因为迁移的全部意义就在于会话是在新环境中创建的。

坦率的总结

Chrome 配置文件彻底解决了共用 Cookie 存储的问题,但也只解决了这一点。对很多人来说,Cookie 存储就是问题的全部,再叠加更多工具,只是在为一个他们并不存在的难题耗费精力。

但如果你的账号本应互不相关,那么 Chrome 配置文件之下共享的设备身份,就在做一件你从未要求它做的事。这就是那条界线。你站在界线的哪一侧,决定了这份对比中其余的一切。

需要明确说明一点。以上这些并不构成任何许可。条款禁止持有多个账号的服务,即使这些账号彼此隔离,依然是禁止的。请把环境隔离用于你有权从事的工作。

全部文章 · 开始扫描