Morfiade
简体中文
试用

CDP,Chrome DevTools 协议

CDP(Chrome DevTools Protocol)是程序用来控制浏览器的一整套命令:打开一个地址、点击一个按钮、输入文字、在页面上运行脚本、截取屏幕截图。浏览器自带的开发者工具用的就是同一种语言,Playwright 和 Puppeteer 也是如此。

这些命令读起来很直白:Page.navigateRuntime.evaluatePage.captureScreenshot

程序连接的三种方式

路径具体表现陷阱
端口(Port)浏览器以 --remote-debugging-port 启动,程序连接到这个端口端口是开放的,能连上它的不只是它的所有者
Pipe程序与浏览器之间的一条通道,没有网络端口外部连不进来——这正是它更好的原因
通过扩展程序浏览器内部的一个扩展程序负责发出命令命令行里完全没有任何调试开关

这个区别不只是表面上的。一个开放的调试端口意味着对浏览器的完全访问权限:通过它可以读取配置文件里的每一个 Cookie,包括页面脚本本身都访问不到的那些。正因如此,Chrome 136 才会在默认配置文件夹上禁止调试

一个值得提前知道的测量结果

只要浏览器带有调试通道——无论是哪一种——登录 Google 账号就会失败。 我们分别测试过:端口、pipe,甚至是通道只是打开着、并没有发送任何命令的情况。结果每次都一样——登录都无法完成。

伪装指纹并不能解决这个问题:被检测到的不是浏览器看起来怎么样,而是它能够被外部控制这一简单事实。

由此得到的实际结论是:自动化和登录 Google,是一种二选一,而不是一种组合。 一个通过调试通道被控制的配置文件,不适合用来登录 Google;而一个需要登录 Google 的配置文件,要用另一种方式来实现自动化——通过浏览器内部的扩展程序。

这和普通人有什么关系

直接来说——没什么关系。间接来说,是因为脚本、自动化以及从 AI 智能体控制浏览器都建立在 CDP 之上。还因为你机器上一个开放的调试端口是一个真实存在的漏洞:如果有程序建议你在主浏览器上"直接打开调试功能",这就值得问一句为什么。