目录

CloakBrowser:源码级改写的反机器人 Chromium 分发版

项目概览

CloakBrowser 是 CloakHQ 团队推出的 stealth Chromium 分发版,GitHub 今日新增约 1,835 星。其核心价值在于解决了自动化浏览器被反爬虫系统检测的核心痛点:浏览器指纹。

大多数反爬虫方案通过检测 navigator.webdriverBrowserleaks 分数、`Canvas/WebGL 哈希」或「Headless Chrome 特有行为」来识别自动化脚本。CloakBrowser 从 C++ 源码层面修改了这些检测点,使得目标网站看到的不是一个"被操控的浏览器",而是一个"真实的普通用户 Chrome"。

核心原理

CloakBrowser 与其他 stealth 方案的本质区别在于"在哪一层做修改":

Patch Config / 配置文件层: 只修改浏览器启动参数(如 --disable-blink-features),容易被 JS 检测层识别出参数残留。

JS 注入方案: 通过 CDP 注入 JavaScript 覆盖 navigator 对象属性,但自动化框架自身的 JS 上下文特征(如 Playwright 的 cdc_props)仍可能被检测。

CloakBrowser 的 C++ 源码级改写: 直接修改 Chromium 源码中的浏览器指纹生成逻辑,编译为独立二进制。这意味着网站收到的所有浏览器特征信号(Canvas Hash、WebGL Renderer、User-Agent Client Hints、AudioContext 行为)都在 C++ 层被改写,检测不到任何"非正常浏览器"信号。

49 个源码级 C++ Patch 覆盖了以下检测维度:

  • WebDriver 标志位:隐藏 navigator.webdriver 标志
  • Canvas 指纹:对 Canvas 2D / WebGL 渲染结果添加随机噪声,与真实 Chrome 行为一致
  • Font 指纹:匹配目标系统真实安装字体的枚举行为
  • Navigator 属性:覆盖自动化框架注入的特有属性
  • Headless 特征:去除 Headless Chrome 在网络层和渲染层的特殊行为标记

使用方式

CloakBrowser 被设计为 Playwright 和 Puppeteer 的直接替代品,不需要修改任何业务代码。只需要三行改动即可完成切换:

# 原来的 Playwright 代码
from playwright.sync_api import sync_playwright

# 替换为 CloakBrowser(API 完全兼容)
from cloak_browser import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://example.com")
// 原来的 Puppeteer 代码
const puppeteer = require('puppeteer');

// 替换为 CloakBrowser(API 完全兼容)
const { cloak } = require('cloak-browser');

(async () => {
  const browser = await cloak.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://example.com');
})();

对于已有 Playwright/Puppeteer 脚式的团队,CloakBrowser 提供了零改造成本的 stealth 升级路径。

Cloudflare Turnstile 实测

官方仓库展示了 Cloudflare Turnstile(无感验证码)的实测结果:在 headed 模式和 macOS 环境下均可通过 3 个 live 测试。这对于需要长期运行、且目标站点使用 Cloudflare 保护的业务场景具有实际价值。

适用场景

CloakBrowser 适合以下场景:

  • 长期运行的爬虫项目:需要稳定绕过反爬虫检测,不想像配置文件方案那样频繁维护和更新
  • 需要真实浏览器环境的自动化测试:如需要绕过 bot 检测的 SEO 监控、竞品分析、价格监控
  • Playwright/Puppeteer 的 stealth 升级:已有脚本不想改写,但遇到了持续的检测问题
  • 反检测的浏览器自动化:账号注册自动化、社交媒体数据采集等

优势与边界

CloakBrowser 的优势在于源码级改写的深度,使其在面对高级 bot 检测系统时具有比其他方案更强的生存能力。但需要注意:

  • 作为闭源社区项目,维护更新依赖于项目活跃度
  • 49 个 C++ Patch 的具体实现细节未完全公开,对安全研究者来说存在一定信任门槛
  • 部分高级检测(如鼠标移动轨迹、键盘输入时序)仍需结合自动化层面的人工行为模拟

总结

CloakBrowser 提供了一条从源码层解决浏览器指纹检测的路径,对需要长期稳定运行自动化任务、且目标站点使用 Cloudflare、PerimeterX、DataDome 等反爬虫平台的团队具有实际价值。三行代码的 API 兼容性设计使其成为现有 Playwright/Puppeteer 项目最低成本的 stealth 升级选择。