横向对比

Cloudflare Bot Management 与 Turnstile:了解差异

Cloudflare 提供了两种开发人员经常混淆的不同机器人防护产品:机器人管理(企业网络级防御)和 Turnstile(免费的验证码替换小部件)。 Bot Management 是一个综合平台,包括 WAF 规则、速率限制和行为分析。 Turnstile 是一个独立的验证码小部件,任何网站都可以免费嵌入。了解差异对于选择正确的自动化方法至关重要。


快速比较

特征 机器人管理 旋转门
它是什么 企业机器人防御平台 免费验证码小部件
定价 企业计划 ($$$) 所有计划免费
部署 网络级(Cloudflare 代理) JavaScript 小部件(嵌入页面)
需要 Cloudflare DNS 是的 否(适用于任何网站)
可见的挑战 有时(管理挑战) 很少(大部分是看不见的)
检测范围 所有对域的请求 特定页面操作(表单提交等)
机器人得分 1-99(根据要求) 通过/fail(每次挑战)
WAF 集成 是(基于机器人分数的规则)
JavaScript 挑战 是(5 秒等待页面) 是(后台工作量证明)
速率限制 是的
CaptchaAI 支持 通过 Turnstile/Challenge 方法 是(100% 成功率)

Cloudflare 机器人管理(企业)

机器人管理是 Cloudflare 企业计划的一部分。它在网络级别运行——对域的每个请求在到达源服务器之前都会被评估。

机器人管理如何运作

Request arrives at Cloudflare edge
    ↓
Bot Management engine evaluates:
  ├─ Machine learning model (behavioral fingerprint)
  ├─ Heuristics (known bot patterns)
  ├─ JavaScript fingerprinting (if JS challenge triggered)
  ├─ JA3/JA4 TLS fingerprint
  ├─ HTTP header analysis
  └─ IP reputation (Cloudflare sees ~20% of internet traffic)
    ↓
Bot score assigned: 1 (definitely bot) to 99 (definitely human)
    ↓
WAF rules act on the score:

  - Score > 50 → Allow
  - Score 30-50 → Managed challenge
  - Score < 30 → Block or JavaScript challenge

机器人管理组件

成分 目的
机器人得分 每个请求的基于 ML 的评分
管理挑战 自适应显示 JS 挑战或旋转门
超级机器人战斗模式 Pro/Business 计划的简化模式
机器人分析 显示机器人流量与人工流量的仪表板
WAF 自定义规则 在机器人分数阈值上触发的规则
速率限制 每个 IP/session 的请求率阈值
JavaScript 检测 无头浏览器和自动化工具检测

自动化遇到什么

当站点使用机器人管理时,自动请求可能会看到:

  1. 直接阻止 (403) — 机器人分数非常低,WAF 规则阻止
  2. JavaScript 挑战页面 — 5 秒的“检查您的浏览器”页面
  3. 托管挑战 — Turnstile 小部件或 JS 挑战
  4. 隐形通行证 - 允许请求(机器人得分足够高)

Cloudflare Turnstile(免费验证码)

Turnstile 是一个独立的验证码小部件,可替代传统的验证码。它独立于机器人管理工作,可以在任何网站(不仅仅是 Cloudflare 代理的网站)上使用。

旋转栅门的工作原理

Page loads Turnstile widget
    ↓
Widget runs background checks:
  ├─ Browser proof-of-work challenge (cryptographic puzzle)
  ├─ Private Access Token (Apple devices)
  ├─ Browser environment validation
  └─ Cloudflare threat intelligence
    ↓
Result: cf-turnstile-response token generated
    ↓
Token submitted with form data
    ↓
Server validates token via Cloudflare API (siteverify)

Turnstile小部件模式

模式 行为 使用案例
管理 Cloudflare 在隐形和交互式之间做出选择 默认,推荐
非交互式 始终不可见(仅限工作量证明) 低摩擦形式
无形的 没有可见的小部件,在页面加载时运行 背景核查

旋转栅门集成

<!-- Simple Turnstile integration -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAC3DHQhMMQ_Rxrg"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

解决机器人管理与Turnstile问题

解决Turnstile问题(简单)

Turnstile通过CaptchaAI的Turnstile方法解决,成功率100%:

import requests
import time

API_KEY = "YOUR_API_KEY"

submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "turnstile",
    "sitekey": "0x4AAAAAAAC3DHQhMMQ_Rxrg",
    "pageurl": "https://example.com/signup",
    "json": 1,
})

task_id = submit.json()["request"]

for _ in range(60):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY,
        "action": "get",
        "id": task_id,
        "json": 1,
    }).json()

    if result.get("status") == 1:
        token = result["request"]
        print(f"Turnstile token: {token[:50]}...")
        break

解决机器人管理挑战

机器人管理使用多个防御层。验证码组件(如果存在)通常是呈现为 Turnstile 的托管挑战:

# Bot Management flow for automation:

# 1. Make initial request
response = requests.get("https://protected-site.com/api/data")

# 2. Check if challenged
if response.status_code == 403:
    # Hard block — need to adjust headers, proxy, or approach
    pass
elif "challenge" in response.text.lower() or response.status_code == 503:
    # JavaScript challenge or managed challenge
    # If it contains a Turnstile widget, solve it:
    if "cf-turnstile" in response.text or "challenges.cloudflare.com" in response.text:
        # Extract sitekey and solve via CaptchaAI
        sitekey = extract_turnstile_sitekey(response.text)
        token = solve_turnstile(sitekey, "https://protected-site.com/api/data")

Cloudflare 验证流程 页面(非旋转门)

“检查您的浏览器”JavaScript 挑战页面不是 Turnstile 小部件。 CaptchaAI 通过 cloudflare_challenge 方法处理此问题:

submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "cloudflare_challenge",
    "sitekey": "managed",
    "pageurl": "https://protected-site.com/login",
    "json": 1,
})

当你遇到每一款产品时

设想 可能的产品 如何识别
5 秒“检查您的浏览器”页面 机器人管理(JS 挑战) 页面源中的 cf-chl-bypassjschl_vc
表单上的Turnstile小部件 旋转栅门(独立式) cf-turnstile 类、challenges.cloudflare.com/turnstile
Cloudflare 错误页面出现 403 Forbidden 机器人管理(硬块) cf-ray 标头,Cloudflare 错误模板
Cloudflare 页面上的交互式复选框 托管挑战(机器人管理) challenges.cloudflare.com 域名
没有明显的挑战,但 cf cookies 设置 机器人管理(通过) qa_session_cookie cookie

检测码

import requests

def identify_cloudflare_protection(url):
    """Identify which Cloudflare protection a URL uses."""
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                      "AppleWebKit/537.36 Chrome/120.0.0.0",
    }

    response = requests.get(url, headers=headers, timeout=15, allow_redirects=False)
    html = response.text

    result = {
        "cloudflare_protected": "cf-ray" in response.headers.get("cf-ray", "")
                                or "cloudflare" in response.headers.get("server", "").lower(),
        "bot_management_challenge": False,
        "turnstile_widget": False,
        "hard_block": False,
        "passed": False,
    }

    if response.status_code == 403:
        result["hard_block"] = True
    elif response.status_code == 503 and "jschl" in html:
        result["bot_management_challenge"] = True
    elif "cf-turnstile" in html:
        result["turnstile_widget"] = True
    elif response.status_code == 200:
        result["passed"] = True

    return result

常见问题

站点可以同时使用机器人管理和旋转门吗?

是的。 Bot Management 在网络级别针对所有请求运行,而 Turnstile 可以作为小部件添加到特定页面上。站点可能会使用机器人管理来阻止边缘的明显机器人,并在登录 /signup 表单上使用 Turnstile 进行额外验证。

Turnstile 是机器人管理的一部分吗?

不直接。旋转栅门是一个单独的产品。然而,机器人管理的“托管挑战”模式可以呈现类似旋转门的小部件。求解方法是相同的 - 使用 CaptchaAI 的 Turnstile 求解器。

哪个更难解决?

机器人管理更加困难,因为它使用多个信号(TLS 特征、IP 信誉、请求模式)评估网络级别的每个请求。 Turnstile 本身仅保护特定的表单提交。对于机器人管理,除了解决验证码挑战之外,您还需要正确的标头、TLS 配置和 IP 轮换。

CaptchaAI 能解决这两个问题吗?

CaptchaAI 解决 Turnstile 小部件(100% 成功率)和 Cloudflare 验证流程 页面。机器人管理的网络级阻止(403 响应)需要额外的基础设施(适当的标头、代理),这些基础设施超出了 CaptchaAI 的范围 - CaptchaAI 处理 CAPTCHA 质询组件。


概括

Cloudflare Bot Management 是一种企业网络级防御,可通过 ML 评分、WAF 规则和行为分析来评估每个请求。 Cloudflare Turnstile 是一个免费的验证码小部件,可通过浏览器工作量证明来验证用户。对于自动化,旋转门直接解决CaptchaAI(100%成功率)。机器人管理挑战需要正确的浏览器模拟以及验证码挑战组件的 CaptchaAI。

相关文章

该文章已禁用评论。