现代网页的无限滚动机制常通过检测事件对象的 `isTrusted` 属性来区分真实用户操作与 JavaScript 模拟脚本,以此阻止自动化爬虫获取内容。然而,开源项目 Scrapewright 提出了一种创新方案,成功绕过了这一浏览器安全限制。传统的 JS 脚本生成的事件被永久标记为不可信,但该项目利用 Chrome DevTools Protocol (CDP) 的 Input 域,直接向浏览器的底层输入管线注入鼠标滚轮事件。由于这些事件通过了与操作系统输入相同的路径,它们被标记为 `isTrusted: true`,能够完美触发基于 IntersectionObserver 的懒加载机制。技术上,该方法仅能在活动标签页上生效,且受限于 Chrome 的合成帧生成规则。为了保持技术伦理,该工具明确显示调试提示,并将 CDP 权限限制在仅输入指令的范围内,避免了潜在的滥用。该项目的开源代码与白皮书详细记录了这一五层反节流堆栈的实现细节,被认为是今年最为深入的 Chrome 内部机制工程实践之一。
事件分析
核心观点:利用 CDP 协议直接注入原生输入,打破了 JS 沙箱的安全假象,标志着自动化与前端防御的博弈已进入内核层。
原文链接:V2EX 分享发现

评论前必须登录!
立即登录 注册