Vergleiche

Cloudflare Bot Management vs. Turnstile: Den Unterschied verstehen

Der Unterschied in einem Satz: Bot Management ist eine kostenpflichtige Abwehr auf Netzwerkebene, ausschließlich im Enterprise-Plan von Cloudflare enthalten – Turnstile dagegen ein kostenloses Widget, das jede Website einbetten kann. Wer automatisiert, muss vorab wissen, welches der beiden vor ihm liegt: Ein Turnstile-Token ist per API lösbar, eine Blockade auf Netzwerkebene nicht.


Cloudflare Bot Management: Abwehr auf Netzwerkebene

Bot Management ist Teil des Enterprise-Plans von Cloudflare. Es arbeitet auf Netzwerkebene: Jede Anfrage an die Domain wird bewertet, bevor sie den Ursprungsserver erreicht.

So bewertet Bot Management jede Anfrage

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

Entscheidend ist der zusammengesetzte Score: Aus TLS-Fingerabdruck, IP-Reputation und Header-Analyse wird eine Zahl zwischen 1 und 99, auf die die WAF-Regeln reagieren.

Die Bausteine von Bot Management

Bot Management bündelt mehrere Komponenten:

  • Bot-Score – ML-basierter Score für jede Anfrage.
  • Managed Challenge – zeigt adaptiv eine JS-Challenge oder Turnstile.
  • Super Bot Fight Mode – vereinfachter Modus für Pro-/Business-Pläne.
  • Bot-Analytics – Dashboard mit Bot- und Menschen-Traffic.
  • WAF-Custom-Rules – Regeln, die bei Bot-Score-Schwellenwerten auslösen.
  • Rate-Limiting – Schwellenwerte für Anfrageraten pro IP oder Sitzung.
  • JavaScript-Erkennung – erkennt Headless-Browser und Automatisierungswerkzeuge.

Was Ihre Automatisierung dabei zu sehen bekommt

Setzt eine Website Bot Management ein, treffen automatisierte Anfragen auf eines von vier Ergebnissen:

  1. Direkte Blockierung (403) – Bot-Score sehr niedrig, eine WAF-Regel blockiert.
  2. JavaScript-Challenge-Seite – die 5-Sekunden-Seite „Überprüfen Sie Ihren Browser“.
  3. Managed Challenge – ein Turnstile-Widget oder eine JS-Challenge.
  4. Unsichtbarer Durchlass – Anfrage erlaubt, weil der Bot-Score hoch genug ist.

Ein Praxisbeispiel aus dem DACH-Raum: Sie betreiben einen Preis-Monitor für einen Shopware- oder JTL-Store hinter Cloudflare. Beim ersten Aufruf entscheidet sich, welche der vier Reaktionen greift – erst danach steht fest, ob ein lösbares CAPTCHA vorliegt. Beachten Sie dabei die DSGVO: IP-Adressen sind personenbezogene Daten.

Cloudflare Turnstile: das kostenlose Widget

Turnstile ist ein eigenständiges CAPTCHA-Widget als Ersatz für klassische CAPTCHAs. Es funktioniert unabhängig von Bot Management und lässt sich auf jeder Website einsetzen – nicht nur hinter dem Cloudflare-Proxy.

Was im Hintergrund des Turnstile-Widgets passiert

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)

Am Ende steht ein einziges Artefakt: das cf-turnstile-response-Token. Genau das braucht Ihre Automatisierung – der Server prüft es gegen die Cloudflare-API.

Die drei Betriebsmodi von Turnstile

Turnstile kennt drei Modi:

  • Managed – Cloudflare entscheidet zwischen unsichtbar und interaktiv; Standard und empfohlen.
  • Nicht interaktiv – immer unsichtbar, nur Proof-of-Work; ideal für reibungsarme Formulare.
  • Unsichtbar – kein sichtbares Widget, läuft beim Laden der Seite; für reine Hintergrundprüfungen.

Turnstile in eine Seite einbinden

Einbindung per Container-div und Cloudflare-Skript:

<!-- 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>

Automatisiert lösen: Turnstile gegen Bot Management

Vom einfachsten zum aufwendigsten Fall gibt es drei Situationen:

  • Turnstile-Widget – direkt per API lösbar.
  • Managed Challenge – meist ein Turnstile, derselbe Lösungsweg.
  • JS-Challenge-Seite – über die Methode cloudflare_challenge.

Turnstile lösen – der unkomplizierte Fall

Ein Turnstile-Widget lösen Sie über die Turnstile-Methode von CaptchaAI mit hoher Erfolgsquote – in drei Schritten:

  • Sitekey und Page-URL übermitteln,
  • den Status abfragen,
  • das fertige Token zurückerhalten.
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

Bot-Management-Abfragen in der Automatisierung behandeln

Bot Management stützt sich auf mehrere Verteidigungsebenen. Die CAPTCHA-Komponente – falls vorhanden – ist meist eine Managed Challenge, die als Turnstile erscheint. Der Code prüft daher zuerst die Antwort und leitet nur im Turnstile-Fall an den Solver weiter:

# 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")

Die Cloudflare-Challenge-Seite (kein Turnstile)

Die JavaScript-Seite „Überprüfen Sie Ihren Browser“ ist kein Turnstile-Widget – ein häufiger Trugschluss. CaptchaAI behandelt diesen Fall über die eigene Methode 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,
})

Welches Produkt liegt vor Ihnen? Erkennungsmerkmale

Bevor Sie einen Lösungsweg wählen, ordnen Sie das Produkt anhand dieser Signale zu:

  • Eigenständiges Turnstile – Widget mit der Klasse cf-turnstile bzw. challenges.cloudflare.com/turnstile in einem Formular.
  • JS-Challenge (Bot Management) – 5-Sekunden-Seite „Überprüfen Sie Ihren Browser“ mit cf-chl-bypass und jschl_vc im Quelltext.
  • Harter Block (Bot Management) – 403 Forbidden mit cf-ray-Header und Cloudflare-Fehlervorlage.
  • Managed Challenge (Bot Management) – interaktives Kontrollkästchen auf einer challenges.cloudflare.com-Seite.
  • Unsichtbar bestanden (Bot Management) – keine sichtbare Abfrage, aber ein gesetztes cf_clearance-Cookie.

Erkennung im Code

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 und Turnstile im direkten Vergleich

Diese Tabelle fasst die Unterschiede zusammen:

Funktion Bot Management Turnstile
Was es ist Bot-Abwehrplattform für Enterprise Kostenloses CAPTCHA-Widget
Preise Nur im Enterprise-Plan ($$$) Kostenlos in jedem Plan
Bereitstellung Netzwerkebene (Cloudflare-Proxy) JavaScript-Widget (auf der Seite eingebettet)
Erfordert Cloudflare-DNS Ja Nein (funktioniert auf jeder Website)
Sichtbare Abfrage Manchmal (Managed Challenge) Selten (meist unsichtbar)
Prüfumfang Alle Anfragen an die Domain Einzelne Seitenaktionen (Formular absenden usw.)
Bot-Score 1–99 (pro Anfrage) Bestanden/nicht bestanden (pro Abfrage)
WAF-Integration Ja (Regeln auf Basis des Bot-Score) Nein
JavaScript-Challenge Ja (Warteseite mit 5 Sekunden) Ja (Proof-of-Work im Hintergrund)
Rate-Limiting Ja Nein
CaptchaAI-Unterstützung Über Turnstile-/Challenge-Methoden Ja (hohe Erfolgsquote)

Häufige Fragen

Die häufigsten Fragen von Entwicklern, die beide Produkte automatisiert verarbeiten:

Woran erkenne ich, welches Cloudflare-Produkt eine Seite einsetzt?

An der Reaktion auf die erste Anfrage. Ein sichtbares Widget mit der Klasse cf-turnstile ist eigenständiges Turnstile. Eine 5-Sekunden-Warteseite, ein cf-ray-Header bei 403 oder ein gesetztes cf_clearance-Cookie deuten auf Bot Management. Die Merkmalsliste weiter oben ordnet die Signale eindeutig zu.

Ist Cloudflare Turnstile wirklich kostenlos?

Ja. Turnstile ist in jedem Cloudflare-Plan kostenlos enthalten und benötigt kein Cloudflare-DNS – Sie können es überall einbetten. Bot Management dagegen gehört nur zum kostenpflichtigen Enterprise-Plan.

Warum ist Bot Management schwerer zu automatisieren als Turnstile?

Weil es jede Anfrage auf Netzwerkebene mit mehreren Signalen bewertet, während Turnstile nur einzelne Formularaktionen schützt. Für Bot Management brauchen Sie zusätzlich zum Lösen der Abfrage:

  • passende HTTP-Header,
  • eine saubere TLS-Konfiguration,
  • zuverlässige IP-Rotation.

Löst CaptchaAI sowohl Turnstile als auch Cloudflare Challenge?

Ja, in beiden Fällen übernimmt CaptchaAI die CAPTCHA-Komponente:

  • Turnstile-Widgets – über die Turnstile-Methode, mit hoher Erfolgsquote.
  • Cloudflare-Challenge-Seite – über die Methode cloudflare_challenge.

Nicht abgedeckt ist die reine Blockierung auf Netzwerkebene (403) – dafür brauchen Sie passende Header und Proxys.


Fazit

Bot Management ist eine Enterprise-Abwehr auf Netzwerkebene: Sie bewertet jede Anfrage mit ML-Scoring, WAF-Regeln und Verhaltensanalyse. Turnstile ist ein kostenloses Widget, das Nutzer über einen Proof-of-Work verifiziert. Für die Automatisierung lösen Sie Turnstile direkt über CaptchaAI mit hoher Erfolgsquote; Bot-Management-Abfragen brauchen zusätzlich eine saubere Browsersimulation.

Verwandte Artikel

Kommentare sind für diesen Artikel deaktiviert.