2026 年网站如何检测无头浏览器:CDP 泄漏、一致性校验与对策

发布于 2026年6月6日 · 阅读约 11 分钟

你从裸 HTTP 升级到了真实浏览器。TLS 指纹:货真价实的 Chrome。IP:住宅。可网站照样认得出来。在 2026 年,无头浏览器检测早已远远走过了 navigator.webdriver 那个阶段——这一代检测盯的是自动化协议本身,而大多数"stealth"插件都在打着补丁修昨天的信号,同时又大声地暴露今天的信号。

本文梳理网站如今真正会查什么、大致按什么顺序查,以及在每一层里什么才真正管用。它与 JA3/JA4 TLS 指纹(网络层)和 IP 信誉与 ASN(地址层)一起,凑齐了检测三部曲——这是浏览器层。

第 1 层:经典款(已解决,但仍在查)

如果目标只查第 1 层,加了 headless=new 的现代 Playwright 就能直接走过去。但认真的目标早在好几年前就升级了。

第 2 层:CDP 检测——2026 年的主力

Playwright 和 Puppeteer 通过 Chrome DevTools Protocol 驱动 Chrome,而 CDP 会留下页面 JavaScript 能观测到的运行时副作用:

// 经典的 CDP 泄露:序列化回调
const err = new Error();
Object.defineProperty(err, "stack", {
  get() {
    // 这个 getter 在 console 序列化期间触发——
    // 而那只在 DevTools/CDP 处于连接状态时才会发生
    window.__cdp_detected = true;
  },
});
console.debug(err);

这类手法的各种变体——console 序列化期间的 getter 副作用、Runtime.evaluate 里的时序异常、被打过补丁的原生函数上 toString() 的行为——遍布每一套商用反爬产品。关键之处在于:它检测的是协议,而不是无头模式。一个有头的、打过 stealth 补丁的、看起来完全像人的 Chrome,只要它是通过 CDP 驱动的,照样栽。

什么管用:

第 3 层:环境一致性

除了痕迹,现代系统还会检查你浏览器的故事内部是否自洽

检查项机器人的破绽
Canvas / WebGL 渲染哈希SwiftShader/llvmpipe 软件渲染 = 服务器 GPU;或者一个被 1 万个"不同用户"共用的哈希
字体与编解码器Windows User-Agent 下却是一套 Linux 服务器字体
时区 × 区域设置 × IP 地理Intl 说 UTC,IP 说德州,Accept-Language 说 de-DE
屏幕指标1920×1080 却没有任务栏,devicePixelRatio 正好是 1,窗口从没缩放过
硬件并发数 / 内存向一个自称是手机的页面报告了 96 核
行为微信号鼠标毫无熵、瞬间填完表单、每次都按一模一样的 100px 步长滚动

DIY stealth 就死在这一关:你打的每一个补丁都必须和其他所有信号对得上。在 Linux 容器上伪造一个 Windows UA,会同时和字体、GPU 字符串、TCP 指纹相矛盾。一致性胜过完美——一个诚实的有头 Linux Chrome,得分比一个拙劣伪造的"Windows"还要高。

而下面那一层依然适用

如果地址层已经烧了,上面这些都白搭:一个完美无瑕的浏览器跑在数据中心 ASN 上,依然是"数据中心里一个完美无瑕的浏览器"——而且无头检测的阈值是随 IP 信誉自适应的。同一个浏览器,从被标记的 IP 上发请求会收到更多 JavaScript 挑战。住宅出口实际上降低了浏览器层要扛过去的审查强度:

browser = p.chromium.launch(
    headless=False,                      # 有头能扛过更多检查
    args=["--disable-blink-features=AutomationControlled"],
    proxy={
        "server": "us.jibaoproxy.com:913",
        "username": "USERNAME", "password": "PASSWORD",
    },
)

实操清单

  1. 用新版无头或有头模式;绝不用老式无头。
  2. 对任何认真的目标都假定有 CDP 检测——打补丁的运行时、非 CDP 驱动,或者一个硬化的非 Chromium 引擎。
  3. 别盲目堆 stealth 插件;每一个没打补丁的 toString() 本身就是一个信号。补丁少而自洽才赢。
  4. 把整个故事对齐:时区 = IP 地理 = 区域设置;GPU 对所声称的操作系统要说得通。
  5. 加入输入熵——弯曲的鼠标轨迹、可变的延迟、偶尔往回滚。
  6. 在动真实目标之前,先对着一个中立观察者测一遍。
免费工具 · 无需注册

一次页面加载,审计你的整套自动化栈

我们的指纹与泄露检测工具会报告 webdriver 标志、CDP 痕迹、canvas/WebGL 哈希、时区与 IP 的矛盾,以及反爬厂商会跑的那些一致性检查——你把哪个浏览器对准它都行。

测试我的浏览器指纹 →

浏览器很干净,IP 却出卖了你?给它配上住宅出口——500M免费流量 →

小结

给你的浏览器一个可信的地址

与你指纹所讲的故事相匹配的住宅 IP——500M免费流量,无需绑卡。

免费试用

所有IP产品通用 · 海量节点随时可用

现在加入,立享最高20%充值返现

新用户注册即送500M免费流量,首次充值额外加赠,活动期间限时开放。