什么是反检测浏览器?通俗讲解

反检测浏览器为每个账号提供独立的存储、独立的设备身份和独立的网络线路。本文讲解它在实践中的含义,以及它不意味着什么。
普通网络浏览器是围绕一个假设设计的:只有一个人在使用它。这个假设渗透得比大多数人意识到的要深得多,这也是在同一个浏览器里管理多个账号总会出问题的原因。
反检测浏览器去掉了这个假设。你也会看到它被称为防指纹浏览器或多账号浏览器。它不是让一个浏览器假装成几个人,而是给每个账号一套完整的专属环境。
普通浏览器在你的账号之间共享什么
在一个浏览器里打开两个账号,哪怕是在两个窗口中,它们的共同点也远多于标签页所显示的:
- 一个 Cookie 容器。你在使用一个账号时某个网站设置的 Cookie,在你使用另一个账号时会被同一个网站读取。
- 一块存储区域。Local Storage、Session Storage 和 IndexedDB 是按网站而不是按账号划分的,所以两个会话读写的是同一批记录。
- 一个设备身份。屏幕尺寸、时区、语言、字体、显卡,以及 Canvas 和 WebGL API 返回的值都是机器的属性,两个账号报告的完全相同。
- 一条网络线路。除非有其他东西介入,两者都从你电脑的同一个地址发出。
无痕窗口对前两项有帮助,对后两项毫无作用。它在关闭时会清除存储,这也意味着每次登录的功夫都白费了。
反检测浏览器中的配置文件是什么
配置文件不是书签文件夹,也不是保存的登录信息。它是一个浏览器环境:磁盘上的一个目录,保存着一个账号的全部浏览器状态,以及该状态所使用的身份和网络线路。
在 PowerOps 中,一个配置文件包含四样东西,每一样都与其他配置文件的相互独立:
| 组成部分 | 包含内容 |
|---|---|
| 浏览器目录 | Cookie、Local Storage、IndexedDB、缓存、历史记录和扩展状态,存放在独立的文件夹中 |
| 设备身份 | 向网站报告的屏幕、平台、区域设置、时区、字体和图形值 |
| 网络线路 | 该配置文件所连接的代理,从代理库分配并在使用前经过验证 |
| 浏览器版本 | 创建该配置文件时所基于的确切浏览器版本,会被记录下来,以便明天以同样的方式打开 |
为什么一致性比隐藏更重要
常见的错误是把指纹当作需要躲避的东西。更有用的做法是把它当作需要保持一致的东西。
网站会读取几十个值。单独看,它们都不起眼;放在一起,它们构成一个形状,而引起注意的不是不寻常的形状,而是自相矛盾的形状:一个声称运行 Windows 平台的浏览器,却报告只安装在 macOS 上的字体;或者时区在一个国家,地址却在另一个国家。互相矛盾的值,比任何单个值本身都是更强的信号。
反检测浏览器做不到什么
有必要直言不讳,因为这个话题上有很多文章并非如此。
- 它不会让配置文件变得无法被识别。任何这样宣称的人都是在猜测,这种说法背后没有任何测量依据。
- 它不会凌驾于平台的规则之上。如果某项服务禁止持有多个账号,隔离这些账号并不会带来许可。
- 它无法修复行为违反平台规定的账号。隔离只是分开环境,并不改变在环境内部所做的事情。
它能做到的是具体且可验证的:独立的存储、连贯而稳定的设备身份、每个配置文件一条网络线路,以及账号每次打开时都是同一个环境。
谁真正需要它
凡是一个人或一个团队需要在本不应互相看到的环境之间工作的地方。把客户工作区分开的代理机构;在固定浏览器、区域设置和屏幕尺寸下复现缺陷的 QA 工程师;把市场平台、供应商和店铺后台分开的电商团队;以及任何一天中要退出某个账号才能登录另一个账号的人。
如果你在一项服务上永远只有一个账号,普通浏览器就足够了。一旦有了两个账号,共享的 Cookie 容器就开始耗费你的时间。

