返回知识中心
对比

反检测浏览器会改变什么?

了解反检测浏览器可以配置什么、哪些仍取决于主机或网络,以及购买前如何验证配置文件。

BotBrowser Team

文档中心

想直接进入 文档 文档吗?

这篇文章属于知识中心的指南库。若你要步骤化配置、参考说明和持续更新,请直接进入对应 docs 分区。

反检测浏览器是一个类别名称,并不承诺网站会如何判断一次访问。BotBrowser 文档说明了对浏览器值及 Canvas、WebGL 等部分渲染表面的配置能力;这不等于控制整个主机图形系统,也不保证不同主机输出完全相同的像素或第三方网站的判断结果。

要点

  • 配置文件可以设置产品文档中说明的浏览器级值,例如 navigator 属性以及选定的图形或显示设置。
  • 配置文件可定义浏览器环境设置,包括有文档说明的图形或字体配置;它本身不是物理主机或网络路由。
  • 可移植性表示相同的配置文件数据可在兼容的运行环境中使用,并不表示不同机器上的所有输出都相同。
  • 购买前,应使用固定且获准的测试夹具,比较应用配置文件前后的结果,再换到另一台受支持的主机重复检查并查看差异。

目录

这一类别会改变什么

反检测浏览器通常会提供配置文件,用于控制浏览器可见的设置。具体范围取决于产品及其实现方式。因此,有用的问题不是它是否使用了这个类别名称,而是它说明了哪些值、这些值在哪里应用,以及潜在客户可以检查哪些证据。若要比较它与隐私优先浏览器内核的架构,可参阅隐私优先浏览器内核与反检测浏览器;该文讨论架构差异,不替代这里的配置文件范围与验收问题。

具体来说,浏览器指纹概览介绍了 BotBrowser 支持通过配置文件控制的表面,包括部分渲染表面。BotBrowser 会在浏览器内核中应用配置文件设置。这是来自 BotBrowser 文档的产品能力声明,并非 MDN 或网络标准作出的结论。配置文件管理文档将配置文件说明为加密且匹配特定版本的文件,可由团队管理;该文档并未说明可以直接查看或比较文件内容。

浏览器 API 会提供页面可读取的值。例如,MDN 记录了 Navigator 接口,而 Canvas 和 WebGL API 则通过 toDataURL()、getParameter() 等方法提供与渲染相关的读取结果。配置文件可以设置某个有文档说明的浏览器值,但观察到一个预期返回值,只能说明那一次读取返回了什么。它不能证明所有相关表面、渲染结果或传输细节都随之改变。

评估实现方式的声明时,这一区别很重要。浏览器可以报告配置文件选定的值,而另一项测量仍可能反映其他层的信息。返回值是关于该值和该次调用的证据,不是物理设备、某个人或机器人判定的证明。任何产品都无法承诺第三方网站会如何解读这些信息的组合。

在产品声明所指的层面评估它

“指纹”“身份”和“配置文件”之类的词语含义很宽泛。比较套餐前,应把每个词转化为更具体的问题。产品是否说明了页面通过浏览器 API 读取的某个值?是否说明了提供该值的浏览器组件?是否说明该值会不会与请求元数据、工作线程或渲染结果共享?这些是彼此独立的验收问题,并非同一设置的不同说法。

例如,navigator 属性是页面可读取的值。Canvas 图像由绘制和随后读取像素产生;Canvas 指纹说明介绍了这种基于图像的观察。WebGL 参数则由图形 API 返回。MDN 参考资料介绍了开放的接口和调用,但并未说明商业配置文件管理器会在内部改变什么。这部分必须依据产品自己的文档和受控评估来确认。

使用声明台账,而不是功能数量清单:

供应商用语应索取的证据证据可以确定什么尚未确定什么
“控制浏览器值”被点名的设置、受支持的版本,以及在固定测试夹具中读取该值的结果在该设置下,被点名的读取值是否改变其他读取结果、工作线程或请求是否一致
“保持配置文件一致”覆盖表面的清单,以及相同声明配置下的结果在已测试的上下文中,哪些列出的观察结果一致未列出的 API、主机输出和外部服务决定
“可移植配置文件”受支持的主机/版本组合,以及每种组合所用同一配置文件修订版的记录产品是否在每个声明的配置中接受该文件像素级等效或完全相同的网络行为
“私密存储配置文件”文件位置、访问控制、同步/导出行为和保留条款供应商如何说明配置文件的存储和管理方式终端设备备份、代理或所访问服务的行为

最后一列并不是拒绝所有产品的理由。它可以防止宽泛的产品宣传悄然变成从未测量过的验收标准。应要求供应商明确指出不支持或未测量的表面,然后判断它们是否与你的工作流程相关。

将 API 值视为一次观察

假设测试夹具读取 navigator.platform,并返回配置文件中列出的值。这个结果支持一个范围有限的结论:在该页面、浏览器版本和主机上,该属性返回了这个字符串。它并不能说明请求是否使用了匹配的元数据、工作线程是否返回了相同值,或另一个图形表面是否发生改变。应在记录中分别为这些观察结果留出条目。

这种区分也有助于避免意外作出设备声明。配置文件可以包含声明的浏览器设置,但并不代表某一台可被唯一识别的物理计算机。多台机器可以共用同一配置,而一台机器在不同软件或启动设置下也可能显示不同值。即使某个值看起来像已知设备的特征,它仍只是观察到的值,不是序列号,也不能证明特定的人曾使用它。

哪些内容不属于配置文件

配置文件只是运行中浏览器的一个输入,并不能取代周围的机器和服务。比较产品时,应将以下层面分开:

层面包含的内容决策规则
浏览器配置文件有文档说明的浏览器报告设置,例如选定的 navigator、显示或图形参数只有当产品文档中的设置涵盖了获准工作流程所需配置的值时,才选择该产品。
主机与渲染物理操作系统、图形设备、驱动程序及主机生成像素时的相关因素如果渲染输出很重要,应比较有文档说明的配置文件控制表面及不同主机上的结果;JavaScript 值变化不能证明像素相同。
网络路径代理或直连路由、出口地址、解析器行为和传输路径使用实际准备采用的网络配置评估这些内容;仅凭配置文件无法确定路由。
网站或服务数据收集方式、风险规则、访问政策以及返回给访问者的决定将结果视为服务的决定,而不是浏览器供应商可以保证的能力。

Canvas 和 WebGL 展示了浏览器可配置表面与主机渲染之间的区别。BotBrowser 文档说明了对部分渲染观察值的控制能力,而主机仍提供硬件和驱动程序;读取结果的 API 调用并不代表完整图形过程。配置文件设置可以影响有文档说明的表面,却不能确保不同主机渲染出相同像素。网络设置也必须在路由和请求层面验证,不能从浏览器 API 输出推断。

这也是为什么仅抽查 API 不足以支持购买决定。比较浏览器内核设计与页面脚本覆盖时,浏览器内核级与 API 级保护对比说明了这些方法各自作用的位置。仅凭类别名称无法判断产品采用哪种实现方式。

浏览器请求的四个边界:配置文件设置、主机渲染、网络路由和远程服务响应。

配置文件可移植性意味着什么

可移植性描述的是:在符合产品文档所列兼容性要求的前提下,配置文件数据可在其他环境中使用。BotBrowser 配置文件是加密且匹配版本的文件;文档没有说明可以直接查看或比较其内容。配置文件可以定义浏览器设置,包括图形配置,但它不是物理主机、网络路由或网站响应。

比较兼容主机时,应将同一个配置文件作为受控输入,同时记录运行环境和机器信息。比较记录应包括浏览器版本、配置文件修订版、启动选项、主机、渲染设置和网络路由。如果更换主机后结果不同,配置文件本身可能没有改变,但渲染层或网络层可能改变了。

配置文件可移植性也不代表存储合并或会话转移。配置文件、浏览器 Cookie 和其他持久状态是不同的对象,需要分别盘点和管理。产品文档应说明包含哪些工件,以及哪些需要单独处理。如果答案不清楚,应将其作为购买前需要确认的问题,而不是假设配置文件包含完整浏览器会话。

需要判断配置文件能否在不同机器间移动的团队,也可以参考跨平台浏览器配置文件比较,其中重点讨论如何一并记录配置文件、版本、主机记录和启动设置。

购买前比较

使用一个由你拥有或获准测试的小型夹具。目标是在预期配置上验证产品声明的范围,而不是预测第三方网站会如何分类。

  1. 写下产品声明。 列出供应商声称配置文件可以控制的具体设置、受支持的浏览器版本和主机,以及任何兼容性限制。如果产品允许,记录配置文件修订版和稳定的文件哈希。
  2. 固定比较输入。 选择一个页面或本地夹具,读取工作流程所需且有文档说明的 navigator、Canvas 和 WebGL 表面。记录浏览器版本、主机操作系统、渲染设置、启动选项和网络路由。使用相同输入运行配置文件和基线,只改变是否应用配置文件。
  3. 比较观察结果。 检查有文档说明的值是否如声明那样改变。将 Canvas 输出和 WebGL 结果与 API 返回值分开记录。预期结果应清楚列出哪些观察发生了变化、保持不变或无法测量;值发生变化并不能证明设备或身份。
  4. 在另一台兼容主机上重复。 不编辑配置文件,直接传输同一文件,并保持浏览器版本和启动选项不变。预期:产品文档涵盖的配置文件控制值仍与该配置文件相关;主机渲染结果可能不同,应明确记录这一点。
  5. 独立检查路由。 使用获准的端点或你自己的服务器日志,确认实际网络路由和出口。预期:观察到的路由与所选网络配置一致。不要把浏览器配置文件比较当作代理、DNS 或传输行为的证据。
  6. 作出有边界的决定。 只有在所需配置文件设置均有文档说明、工件可按团队要求管理,并且剩余主机和网络差异适合工作负载时,才购买。将无法解释或无法获得的观察标记为未解决,而不是通过。

使用简明记录,每次运行占一行:

运行配置文件修订版主机与浏览器版本路由观察结果与预期结果
基线无相同的声明主机和版本固定路由参考值和渲染输出
配置文件声明的修订版相同主机、版本和选项相同路由有文档说明的配置文件值发生变化;其他观察分别记录
可移植性相同修订版和哈希第二台兼容主机和相同版本条件允许时使用相同路由将配置文件控制的观察与主机渲染差异分开

按表面解释差异

这三种浏览器输出分别描述不同的观察结果。

navigator.platform 记录该属性在当前页面和已记录配置下返回的字符串。单个返回值不能说明配置文件控制的所有表面都发生了变化,也不能说明另一台主机返回相同字符串,更不能证明该字符串可以识别设备或个人,或预测服务的决定。

HTMLCanvasElement.toDataURL() 会将此次调用中的 Canvas 图像数据序列化为数据 URL。所得字符串描述此方法序列化的图像数据;它不能证明涵盖所有 Canvas 操作,也不能证明另一台主机会生成像素完全相同的输出。它同样不能证明设备或个人身份,或远程服务的决定。

WebGLRenderingContext.getParameter() 返回从该 WebGL context 查询的参数。该值仅对应在这个 context 中对该参数的读取;它不能说明其他值或配置文件设置一致,也不能证明跨主机像素一致、设备或个人身份,或服务如何决定。

这些读取不能互相替代:API 返回值、序列化图像数据和 context 参数描述不同观察。即使合并考虑,它们也不能证明配置文件的整体覆盖范围、不同主机上的输出完全一致、某种身份或服务如何解释一次访问。每项结果都应对应到已记录的输入。

常见问题

反检测浏览器会改变页面可以观察到的一切吗?

类别名称本身无法证明这一点。不同产品开放的设置不同,观察结果可能来自浏览器、主机、渲染管线、网络或服务。应将有文档说明的具体范围与工作流程所需的测试夹具进行比较。

同一个配置文件在每台机器上都会生成完全相同的输出吗?

并非如此。配置文件是可移植数据,而主机仍提供渲染内容的环境,网络仍决定请求如何传输。应在与你的部署相关且受支持的机器上进行测试。

不能。它只表明该次运行中某个特定 API 读取到了什么。它不能证明物理设备或某个人,也不能说明网站会如何判断浏览器。

不要作此假设。应查阅产品文档,确认配置文件确切包含哪些内容;除非文档明确说明,否则应将会话存储与网络配置作为独立工件管理。

试用期间应比较什么?

从文档中列出的设置以及你打算使用的主机、浏览器版本和路由开始。记录基线,应用一个配置文件,重复相同的测试夹具,并分别比较每项页面读取、渲染输出和网络观察。结果有差异时,一次只改变一个输入。

配置文件能让第三方网站接受一个会话吗?

浏览器配置文件不能证明网站的接受条件,浏览器供应商也不控制该服务的规则。应使用有文档说明的配置行为和你获准使用的测试夹具来评估浏览器。关于访问的问题,请遵循网站条款并通过其支持流程处理。

命令行设置可以覆盖配置文件吗?

可以。BotBrowser 的配置文件管理文档说明,CLI --bot-* 标志的优先级高于配置文件的 configs 块和默认值。比较配置文件时应记录实际启动参数,因为命令行覆盖项会改变浏览器值的来源。

来源

实际结论

反检测浏览器可以配置产品文档中说明的浏览器级表面,但配置文件并不等同于机器、渲染管线、网络路由或网站决定。购买前,使用声明的配置文件和不应用配置文件分别运行同一个获准测试夹具,再换到兼容主机重复检查;只有当观察结果符合文档说明的范围,且剩余差异可接受时,才继续使用。

#反检测浏览器#浏览器配置文件#浏览器指纹#比较

在 BotBrowser 里跑一遍同样的检查

加载 profile,让刚读到的这些信号在浏览器内部保持一致,并在正式上线前先在自己的机器上确认结果。