Cloudflare挑战与Turnstile:关键区别解析
Specialist in Anti-Bot Strategies
TL;DR:
- 它们是两种不同的东西,看起来相似。 Cloudflare挑战是边缘保护,控制对整个网站的访问;Turnstile是网站嵌入的部件,用于验证单一操作,例如登录。
- 挑战由Cloudflare在区域级别部署。 你会看到一个全页面的插页(“稍候片刻…”)在内容之前,清除它后会存储一个
cf_clearancecookie。 - Turnstile由网站所有者在线部署。 它位于一个表单上,成功通过后会生成一个
cf-turnstile-response令牌,由网站在服务器端进行验证。 - 对于抓取程序,处理方式不同。 挑战需要一个真实的浏览器来渲染并等待插页清除;Turnstile需要部件运行并从回调中读取其令牌。
- 一个工具涵盖两者。 Scrapeless抓取浏览器在真实的云浏览器中渲染每一种——在实时运行中,它在大约20秒内清除了一个Cloudflare挑战页面。
- 免费开始。 新的Scrapeless账户包括免费的抓取浏览器运行时——在app.scrapeless.com注册。
介绍:同一品牌,两种不同机制
Cloudflare的“稍候片刻…”插页和其Turnstile部件都带有Cloudflare的名称,都在请求和内容之间,并且都在口头上称为“Cloudflare CAPTCHA”。它们不是同一种机制,把它们视为一个就是为什么很多抓取代码在处理一个时正常工作而在处理另一个时出错的原因。
Cloudflare挑战是Cloudflare在其边缘上代表一个它托管的网站所做的事情,以决定一个请求是否能够到达源头。Turnstile是网站所有者故意嵌入在页面上的部件——相当于复选框CAPTCHA的继任者——用于验证特定操作。本指南并排列出了两者:各自是什么、在哪里遇到、产生什么、抓取程序如何处理每种情况。
各自是什么
Cloudflare挑战是区域级别的保护。当Cloudflare的机器管理不确定一个请求是真实浏览器时,它会提供一个插页,运行JavaScript检查,只有在通过后才将请求转发到源头。Cloudflare记录了几种挑战类型——一个自行解决的JavaScript检测、一个自动决定的管理挑战,以及一个要求访客采取行动的互动挑战。访客并不选择加入;而是网站的Cloudflare配置决定的。
Turnstile是一个可嵌入的部件。网站所有者在表单上添加一个<div class="cf-turnstile" data-sitekey="…">(或在JavaScript中渲染它),Turnstile运行一系列不干扰的检查来确认访客是人类。它是一个可替代复选框CAPTCHA的部件,作用范围限于保护的操作,而不是整个网站。
并排比较
| Cloudflare挑战 | Turnstile | |
|---|---|---|
| 它是什么 | 控制访问网站的边缘保护 | 验证单一操作的部件 |
| 谁部署的 | Cloudflare,在区域级别 | 网站所有者,在特定表单上 |
| 你在哪里遇到它 | 内容之前的全页面插页 | 表单内(登录、注册、结账) |
| 触发方式 | Cloudflare对请求的评估 | 加载嵌入它的页面/表单 |
| 产生什么 | 会话的cf_clearance cookie |
每次提交的cf-turnstile-response令牌 |
| 如何验证 | 在Cloudflare的边缘,透明地 | 服务器端与Cloudflare的验证端点比较 |
| 范围 | 区域后面的整个网站 | 仅限于部件保护的操作 |
最明显的区别:挑战是整个房子的前面的一堵墙,你必须通过它才能看到任何东西;Turnstile是房子内部某扇门上的锁,你可以在房子里自由走动。
它们的重叠之处
这种混淆是可以理解的,因为两者共享设备。Turnstile和互动挑战使用相同的基础部件技术,因此一个互动挑战可以看起来与Turnstile复选框一模一样。区别在于谁放置了它以及它所控制的内容:挑战是Cloudflare在控制源;Turnstile是网站在控制一个表单。两者最终都生成一个令牌,证明检查通过——挑战的cf_clearance cookie,Turnstile的cf-turnstile-response,两者都受HTTP状态管理规范中cookie和头语义的管理。
抓取程序如何处理每一种
两者最终都取决于运行真实的浏览器,但成功条件是不同的。
对于挑战,您需要渲染页面并等待中间页面解析为真实内容——页面标题从“请稍等……”翻转到真实标题,并在会话上设置cf_clearancecookie。Cloudflare权衡的信号与决定任何自动请求的信号相同:JavaScript是否实际执行,指纹是否一致,以及出口IP是否可信,这就是为什么住宅出口很重要。完整的操作步骤可以在关于清除Cloudflare挑战的指南中找到。
对于Turnstile,您渲染表单,让小部件运行,并在提交表单之前从回调中读取cf-turnstile-response令牌——该令牌随后在服务器端根据Cloudflare的服务器端验证进行检查。由于令牌与小部件的配置相关联,因此了解小部件的参数很有帮助;阅读这些参数在关于检测Turnstile参数的指南中有涉及。
这两种防御机制所针对的自动流量模式被记录在OWASP自动威胁项目中——这就是为什么同样的真实浏览器方法可以同时清除这两者。
你面对的是哪个?
一个快速决策指南:
- 一个完整的页面显示“请稍等……”或“验证您是人类”而在内容加载之前 → 是Cloudflare挑战。渲染页面并等待中间页面清除;固定住宅出口。
- 一个表单上的复选框或不可见的小部件,其余页面已经可见 → 是Turnstile。渲染表单,从回调中读取令牌,然后提交。
- 一个遮挡整个网站的复选框 → 是一个使用Turnstile风格UI的互动挑战。将其视为挑战(它阻止了源),但小部件机制是相同的。
一个管理的云浏览器涵盖了这三者——Scraping Browser在真实浏览器中渲染每个请求,使用住宅出口,而文档涵盖了完整流程。在实际运行中,它在大约20秒内清除了一个Cloudflare挑战页面。
结论:了解您所面对的机制
Cloudflare挑战和Turnstile为网站解决不同的问题:挑战决定请求是否达到源,而Turnstile确认一个人是否执行了特定操作。它们共享小部件技术,并且都以通过证明令牌结束,但它们出现的地方、谁部署它们以及它们限制的内容都是不同的——这决定了您如何处理它们。无论如何都要在真实浏览器中渲染;等待挑战的清除,在Turnstile上读取令牌,并固定住宅出口,以便请求看起来像它所是的。请查看定价页面以扩展任一流程。
准备好构建您的AI驱动数据管道了吗?
加入我们的社区以领取免费计划,并与处理反机器人流程的开发者联系:Discord · Telegram。
在app.scrapeless.com注册以获得免费的Scraping Browser运行时,并将上述方法适应于您的目标使用的挑战或Turnstile流程。
常见问题
问:Cloudflare挑战和Turnstile是同样的事情吗?
不。挑战是Cloudflare应用于限制访问整个网站的边缘保护;Turnstile是网站所有者嵌入的一个小部件,用于验证单个操作。它们共享小部件技术,但由不同方部署并限制不同的内容。
问:我如何判断我面临的是哪个?
如果一个完整页面用“请稍等……”阻止所有内容,那就是一个挑战。如果一个复选框或不可见小部件位于表单上,而其余页面可见,那就是Turnstile。一个遮挡整个网站的复选框是一个使用相同小部件UI的互动挑战。
问:每个机制各自产生什么?
挑战设置一个cf_clearance cookie,清除会话;Turnstile则在每次提交时产生一个cf-turnstile-response令牌,网站在服务器端验证该令牌。
问:我是否以相同的方式处理它们?
两个都需要一个真实的浏览器。对于挑战,你需要渲染并等待插页广告消失;对于Turnstile,你需要渲染表单,从回调中读取令牌,然后提交。住宅出口在这两种情况下都很有帮助。
问:一个工具能处理这两者吗?
可以。一个管理的云浏览器在真实的浏览器中渲染每一个——清除挑战插页广告并让Turnstile小部件运行——因此你不需要为每个单独设置处理。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



