浏览器核心层与 API 层保护:可复现的对比测试
用有界测试矩阵、可观察产物和清晰的责任边界,对比浏览器核心层与 API 层保护。
BotBrowser Team
保护可能发生在浏览器核心行为、页面可见的 API,或两个层面。这个对比在浏览器核心层与 API 层保护之外提供可复现产物。
BotBrowser 可以在声明的版本和 profile 中重复授权测试页面,但不能保证第三方检测器如何分类结果。
要点
- 固定页面、profile、版本和请求顺序,再开始对比。
- 把引擎产生的结果和 API 暴露的结果分成两行。
- 保存观察值,不保存检测评分或个人标识。
- 差异说明测试边界,不等于绕过结论。
内容
定义两个层面
浏览器核心层保护可从渲染、网络、调度或媒体行为观察。API 层保护可从页面代码看到的属性、方法或能力查询观察。两个层面可能一致、不同,也可能在某次页面运行中不可用。
相关主题解释了层面差异。下面的固定顺序、成对控制行和分层产物帮助你复核结果。遇到网络观察时,先看代理配置总览,再判断是否属于引擎;涉及请求与页面值时,使用身份表面总览保持兼容性观察分开。不提供检测器配方或阈值。
执行对比
使用你拥有的受控页面和全新 profile 建立基线,固定版本、窗口、语言、权限和网络路径:
| 行 | 观察 | 层面 | 有界结果 |
|---|---|---|---|
| A | 导航和渲染检查点 | 引擎 | 通过、失败或不可用 |
| B | 明确的 API 能力和值 | API | 通过、失败或不可用 |
| C | 只改变一个声明输入后重复 A 和 B | 两者 | 只列变化字段 |
不要在 C 中同时更新浏览器、修改 profile 和改变网络路径。目标是找到第一个变化字段,而不是追求分数。受控 profile 也能避免把账号数据和无关流量写进产物。
保存可复现产物
在运行记录旁保存小型 JSON。它只描述测试夹具和观察结果,不收集个人、检测器回应或浏览历史:
{
"runId": "protection-compare-20261016-01",
"browser": "Chrome 155.0.8059.80",
"profile": "fresh-temporary",
"fixture": "owned-protection-check",
"rows": {
"engine": { "status": "pass", "checkpoint": "render-01" },
"api": { "status": "pass", "capability": "declared" },
"repeat": { "changedFields": [] }
},
"testedOn": "2026-10-16"
}
产物只证明这个夹具观察到的内容,不证明浏览器的通用属性、检测器决定或服务一定接受请求。
排查差异
只有引擎行变化时,检查渲染或网络检查点,并在相同页面状态下重复。只有 API 行变化时,检查能力可用性、权限和页面检测路径。两行都变化时,先比较声明的输入。
API 不可用不等于引擎检查失败。重试前记录阶段和错误类别。不要删除第一次产物,也不要一次改变多个输入。
在这个对比中,BotBrowser 提供受控 profile 和可重复顺序,但不能承诺服务决定或改变页面验收规则。页面所有者负责夹具,引擎与 API 分别负责自己的行为。
结论
有用的保护对比是带有窄声明的成对实验。固定上下文,分别记录引擎和 API 观察,并保留第一个变化字段,就能复现回归而不把浏览器测试写成绕过承诺。
公开来源
下一篇
先读浏览器核心层与 API 层保护,再读浏览器对比方法。