在本文中,我们尽量回答了所有关键问题。要开始解决问题,第一步是确定当前使用的是哪种防护系统。为此,您可以查看常见验证码与反机器人防护系统列表,其中提供了可视化示例和关键特征,帮助您快速判断自己正在使用哪一种方案。
如果您发现自己的网站使用的是 Cloudflare Waiting Room,下一步就是更深入地了解它的特性和具体工作方式。在本文中,您还可以查看 Cloudflare Waiting Room 的接入说明,以便彻底弄清它在您的网站上是如何运行的。这样一来,您不仅能更好地理解当前的防护机制,还可以更合理地规划后续的维护和支持。
在测试 Waiting Room 机制时,确保队列功能正常并能正确调节网站访问非常重要。
您可以通过以下方式进行检查:
对于自动化测试和验证码识别,您可以使用专业服务,例如 CapMonster Cloud —— 这是一个接收验证码参数,在服务器上进行处理并返回现成解决方案的工具。该解决方案(Token 或 Cookie)可以插入到表单或浏览器中,从而无需用户交互即可通过验证。
通过 CapMonster Cloud API 工作的一般流程:
在请求解决 Cloudflare Waiting Room 时,必须指定以下参数:
type - TurnstileTask;
websiteURL - 存在挑战(Challenge)的页面 URL;
websiteKey - 目标网站上的 Cloudflare 密钥(Key);
cloudflareTaskType - wait_room;
htmlPageBase64 - 包含标题 <title>Waiting Room powered by Cloudflare</title> 的 Base64 编码 HTML 页面;
userAgent - 浏览器 User-Agent。请仅传递来自 Windows 操作系统的最新 UA;
此外,对于此任务,您必须使用自己的代理(Proxy):
proxyType :
proxyAddress - 代理 IPv4/IPv6 地址;
proxyPort - 代理端口;
proxyLogin - 代理服务器登录名;
proxyPassword - 代理服务器密码.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"TurnstileTask",
"websiteURL":"https://example.com",
"websiteKey":"xxxxxxxxxx",
"cloudflareTaskType": "wait_room",
"htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": "1tarGvbY2_ZhQdYxpSBloao.FoOn9VtcJtmb_IQ_hCE-1761217338-1.2.1.1-vyVPoLYIGX0VCJomVuLjF7n0kdM0PXaPjpDsRcohxGr7hb2CE7WfcHpmQZ70goqEjdWxPsDhSVaKNTz9opxWguiNdWEEq_.SceWXIqfP7tnEb69f3bP0mixNqcWy_5P_9INpoAEqr1k7aYU0r45PT4gPr5pwHxedVySyLRdoBXIJasdTE52YOQ3NPdGWTwQ_3h2n_wYqqIvf0kCSAvimRrmsgZxomlyejwqPI6ZHi.w"
}
}收到的解决方案 (Cookie cf_clearance) 可以设置在浏览器中,或者通过指定 Cookie: cf_clearance=<值> 标头随 HTTP 请求一起发送。对于自动化和测试,使用 Puppeteer、Selenium 或 Playwright 也很方便,它们允许您模拟用户操作、注入 Cookie 并提交表单。
下面是一个使用预先获取的 Cookie 值向您的页面发送请求的示例。这对测试很有用:您可以传递正确的值和故意错误的值,以确保您的访问处理和验证逻辑工作正常。
GET https://example.com/
sec-ch-ua: "Google Chrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
sec-fetch-site: same-origin
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br
accept-language: en-US
cookie: cf_clearance=Jf0udVxx.pxJMEHnish22ZOFt4WZEh8iLKm62gIxQAw-1760087570-1.2.1.1-IAO44jrcaDIU6v3f01Q6MpH58vo521.cgZg9OG5ASav.EIf9fmqH2yETyPkmm7dExFNlRL.dYv6xA4iPtlwMepInUaeFinDbYtoMstD_9Vyexx2B2K.r4eJb9zMCQc0XA3yYDHViOC7cYBYHi58FbvycjBe4o236lyz2eoyC48IS.K1zSsVdqBqIoXIT4tEFYdibXdWudtp57lmyjwpryZy..fGFAcFjAGn3iho98_4
sec-ch-ua-arch: "x86"
sec-ch-ua-bitness: "64"
sec-ch-ua-full-version: "141.0.7390.55"
sec-ch-ua-platform-version: "19.0.0"
sec-ch-ua-model: ""
sec-ch-ua-full-version-list: "Google Chrome";v="141.0.7390.55", "Not?A_Brand";v="8.0.0.0", "Chromium";v="141.0.7390.55"
Origin: https://example.com
Upgrade-Insecure-Requests: 11. 注册 Cloudflare 并连接您的网站。
2. 在 Traffic (流量) → Waiting Room 部分,创建一个新队列:
3. 点击 Create Waiting Room (创建等候室)。
指定:
4. 自定义等候页面设计:
5. 保存并激活 Waiting Room。
6. 配置规则
Cloudflare 允许将特定流量排除在队列之外。
典型的绕过规则 (Bypass Rules):
配置:
所有绕过规则都允许将流量从活跃用户计数中排除,从而不影响队列。
高级功能:
通过 API 管理:
Cloudflare Waiting Room API 允许您:
POST zones/{zone_id}/waiting_rooms/{room_id}/rules
Content-Type: application/json
Authorization: Bearer <API_TOKEN>
{
"description": "Bypass admins",
"expression": "ip.src in { '1.2.3.4', '5.6.7.8' }",
"action": "bypass_waiting_room",
"enabled": true
}验证操作
1) 从不同的浏览器/设备打开网站。
2) 检查:
如果你接手了一个已经集成了验证码或其他防护系统的网站,但又无法访问其代码,也不用担心!要判断实际使用了哪种技术其实并不难。为了核实其是否正常工作,你可以在隔离的测试环境中使用CapMonster Cloud识别服务,确保令牌处理机制和校验逻辑都运行正常。
对于Cloudflare Waiting Room,只需识别出所用的系统,观察其行为,并确认防护是否正常工作即可。本文演示了如何识别 Cloudflare Waiting Room,以及到哪里查找其接入或重新配置的说明文档,从而帮助你自信地维护防护方案并掌控其运行情况。