Cloudflare 昨天发布了会话级机器人检测
2026 年 7 月 13 日,Cloudflare 发布了 Precursor。这是一个持续的行为机器人检测引擎,它监控整个会话,而不仅仅是访客登陆的瞬间。他们现有的 Turnstile 质询每天在登录、注册和结账时运行约 30 亿次。Precursor 将相同的客户端可见性扩展到了期间的每个页面。
这个设定很关键。Turnstile 在一个特定时刻只问一个问题:这个访客是人类吗?Precursor 持续提出相同的问题,贯穿每一次鼠标移动、按键、滚动和焦点变化,并将答案反馈到一个跟随会话的动态机器人分数中。
这个改变比新闻稿中听起来的要大得多。
会话是新的指纹
多年来,机器人检测都是短时间爆发式的。解决质询,获取 cookie,运行你的请求。即使是较新的线路级和 header 检查也是基于每次请求的事件。如果你通过了第一次探测,在下一次探测之前你基本是安全的。
会话级行为检测打破了这种模式。根据 Cloudflare 的发布文章:机器人可以执行 JavaScript,使用完整的浏览器环境,并通过单个 CAPTCHA 而不引起怀疑。随着时间的推移,一致的人类行为仍然难以复制。
他们将人类输入的物理特性视为自动化遇到的障碍。人类鼠标的移动是一个弧线,受限于手腕枢轴和前臂旋转。在看到复选框和点击它之间有一个可测量的延迟(认知负荷)。即使是稳定的手也会以生理性震颤频率振荡。机器人产生直线和数学上干净的贝塞尔曲线。他们以人类无法达到的精度点击。
这些信号中的任何一个都微弱可读。在一个五分钟的会话中将它们累加起来,这种差异就会变得很明显。
为什么刷新页面不再能拯救你
在每次请求检测下的规避技巧很明显:如果你的机器人分数上升,刷新页面,轮换身份,重新开始。Precursor 关上了那扇门。
Cloudflare 明确表示:“会话范围很重要,因为它意味着机器人不能通过刷新页面或使用新质询重新开始来重置其行为特征。”可疑会话会积累上下文。机器人分数会跟随访客。
但这种变化对特定中间层的爬虫打击最大。完全 headless、基于每次请求轮换的模型已经败给了标准检查。这并不新鲜。真正具备会话感知能力的操作者,在真实用户访问期间运行一个浏览器身份,基本上没问题。Precursor 惩罚的是介于两者之间的情况:使用合理默认值运行 Puppeteer 或 Playwright 的团队,他们将每个 URL 视为独立任务,并在抓取之间刷新以显得干净。
这种风格的抓取成本很低,因为它是用完即弃的。Precursor 使得用完即弃变得昂贵。
这对 Agentic 爬虫意味着什么
显然,Precursor 的建立是为了捕捉第二类群体:代理式 AI scraper。Cloudflare 在副标题中指出了这一点:通过连续的客户端信号检测代理行为。
自主浏览代理(通过 LLM 驱动,计划任务并逐步执行)倾向于以短促、果断的爆发式移动。导航、提取、导航、提取。单独来看,每个动作都像真实访客可能做的事情。但是没有停留,没有滚动阅读模式,没有微小修正,没有超出目标。在整个会话中,这些缺失与虚假的鼠标抖动一样明显。
因此,如果你正在构建一个边思考边抓取的代理,物理成本就变得很现实了。Cloudflare 的博客指出,Precursor“通过要求自动化操作模拟完整会话来提高其运行成本。这使得构建难度大幅增加,维护成本更高,在大规模操作时的可靠性也远不如前。”
这就是整个设计目标。不是让自动化变得不可能,而是让它在经济上不划算。
这对数据团队意味着什么
三个方面发生了转变,且代价都不小。
首先,会话预算取代了请求预算。如果你正在为受 Cloudflare 保护的目标规划容量,不要再以每秒请求数为单位思考,而要开始以每小时会话数为单位思考:你能维持多少个独立且看似连续的用户旅程,每个旅程有多长?短暂的爆发正是 Precursor 被调整以捕捉的精确特征。我们 5 月份写过的对 proxy 计算的重新思考在这里也适用。池的大小不再是上限,会话的真实性才是。
其次,自建与购买的权衡进一步倾向于购买。针对基于单次请求的防御者维护 scraper 是一次性的集成和偶尔的补丁。而针对基于会话的防御者进行维护意味着持续的行为研发:节奏模型、光标路径、停留时间分布,以及对所有这些保持测试覆盖的方法。如果你还在犹豫是否将网络数据收集外包,这会让自建的成本变得更糟。
第三,最先大规模部署 Precursor 的人将为行业设定新的检测基准。Cloudflare 保护着大约 20% 的网络。如果电子商务和金融客户在下个季度积极启用 Precursor,其他所有人的抓取技术栈都会受到影响,包括那些从未安装 Precursor 的网站,因为防御者生态系统会观察什么有效并快速复制。
没人提及的时间尺度转变
我们三个月前写过关于向行为检测转变的文章。Precursor 是该趋势的产品化版本,它重新锚定了测量窗口。
过去,机器人检测发生在一次 request 期间。现在,它跨越持续数分钟甚至更长的会话进行。这一变化波及了所有基于单次调用作为检测单位而编写的抓取策略。如果损失函数是五分钟交互内的行为连贯性,那么 proxy 轮换、header 模糊测试和秒级 request 速率控制都将失效。
问题不在于机器人检测是否在演进,这是必然的。问题在于,当防御者以会话为单位思考时,你的数据采集技术栈是否仍在以 request 为单位思考。