Explainers

Cloudflare Challenge cf_clearance Cookie-Anleitung

Wenn Cloudflare einen Besucher als verdächtig markiert, stellt es eine Interstitial-Challenge-Seite bereit. Sobald das Problem gelöst ist, empfängt der Browser ein cf_clearance-Cookie, das den Zugriff für die Sitzung gewährt. In diesem Leitfaden wird erläutert, wie der Challenge-Flow funktioniert und wie CaptchaAI damit umgeht.


So funktionieren Cloudflare Challenge-Seiten

  1. Der Benutzer fordert eine durch Cloudflare geschützte Seite an
  2. Cloudflare wertet Risikosignale aus (IP-Reputation, Header, TLS-Fingerprint)
  3. Wenn es markiert ist, gibt Cloudflare einen 403 oder 503 mit einer JavaScript-Herausforderungsseite zurück
  4. Auf der Herausforderungsseite werden Browserprüfungen durchgeführt und möglicherweise ein Turnstile-Widget angezeigt
  5. Bei Erfolg setzt Cloudflare cf_clearance und leitet zur ursprünglichen URL weiter
  6. Nachfolgende Anfragen mit dem Cookie werden ohne Herausforderung weitergeleitet

Eigentum Einzelheiten
Name cf_clearance
Domäne Ziel-Site-Domain (z. B. .example.com)
Pfad /
Lebenszeit Normalerweise 30 Minuten bis 24 Stunden
HttpOnly Ja
Sicher Ja (nur HTTPS)
SameSite Keine

Das Cookie ist an mehrere Faktoren gebunden:

  • IP-Adresse – Die Verwendung des Cookies von einer anderen IP-Adresse schlägt normalerweise fehl
  • User-Agent – Muss mit dem UA übereinstimmen, der beim Lösen der Herausforderung verwendet wird
  • TLS-Browser-Signalprofil – Einige Konfigurationen werden an den TLS-ClientHello gebunden

Herausforderungstypen

Cloudflare bedient verschiedene Herausforderungsstufen:

Herausforderung Antwortcode Benutzerinteraktion Beschreibung
JS-Herausforderung 503 Keine Nur JavaScript-Ausführung
Herausforderung gemanagt 403 Vielleicht Cloudflare entscheidet – kann das Turnstile zeigen oder lautlos passieren
Interaktive Herausforderung 403 Ja Zeigt immer ein Turnstile-Widget an

CaptchaAI löst alle drei Typen mit dem Cloudflare Challenge-Löser.


Lösung mit CaptchaAI

Python

import requests
import time

API_KEY = "YOUR_API_KEY"
TARGET_URL = "https://example.com/protected-page"

# Submit Cloudflare Challenge task
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "turnstile",
    "sitekey": "0x0000000000000000000000",  # may be generic for CF challenge
    "pageurl": TARGET_URL,
    "json": "1",
}).json()

if resp["status"] != 1:
    raise Exception(f"Submit error: {resp['request']}")

task_id = resp["request"]
print(f"Task ID: {task_id}")

# Poll for result
for _ in range(30):
    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["status"] == 1:
        token = result["request"]
        print(f"Token received: {token[:50]}...")
        break
    if result["request"] != "CAPCHA_NOT_READY":
        raise Exception(f"Error: {result['request']}")

JavaScript

const axios = require('axios');

const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com/protected-page';

const submit = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: {
    key: API_KEY,
    method: 'turnstile',
    sitekey: '0x0000000000000000000000',
    pageurl: TARGET_URL,
    json: 1,
  }
});
const taskId = submit.data.request;

// Poll
let token = null;
for (let i = 0; i < 30; i++) {
  await new Promise(r => setTimeout(r, 5000));
  const poll = await axios.get('https://ocr.captchaai.com/res.php', {
    params: { key: API_KEY, action: 'get', id: taskId, json: 1 }
  });
  if (poll.data.status === 1) {
    token = poll.data.request;
    break;
  }
}
console.log(`Token: ${token.substring(0, 50)}...`);

Verwendung des gelösten Tokens

Fügen Sie nach dem Lösen das Token in die Herausforderungsseite ein, um cf_clearance zu erhalten:

# With Selenium
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(TARGET_URL)  # Load the challenge page

# Inject token into Turnstile response field
driver.execute_script("""
    const input = document.querySelector('input[name="cf-turnstile-response"]');
    if (input) input.value = arguments[0];

    // Trigger form submit or callback
    const form = document.querySelector('form');
    if (form) form.submit();
""", token)

# Wait for redirect and extract cookies
import time
time.sleep(3)
cookies = driver.get_cookies()
cf_clearance = next(
    (c for c in cookies if c['name'] == 'cf_clearance'), None
)
if cf_clearance:
    print(f"cf_clearance: {cf_clearance['value'][:30]}...")

Wiederverwendung des Cookies

session = requests.Session()
session.cookies.set("cf_clearance", cf_clearance["value"], domain=".example.com")
session.headers.update({
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
})

# Now access protected pages
resp = session.get("https://example.com/api/data")
print(resp.status_code)  # 200

Das cf_clearance-Cookie läuft ab. Plan zur Neulösung:

import datetime

def is_cookie_valid(cookie):
    if not cookie:
        return False
    expiry = cookie.get("expiry", 0)
    return datetime.datetime.now().timestamp() < expiry - 60  # 60s buffer

def get_or_refresh_clearance(driver, target_url, solve_func):
    cookies = driver.get_cookies()
    cf = next((c for c in cookies if c["name"] == "cf_clearance"), None)
    if is_cookie_valid(cf):
        return cf["value"]

    # Re-solve
    token = solve_func(target_url)
    # ... inject and extract new cookie

Fehlerbehebung

Problem Ursache Lösung
Cookie wurde nach Lösung abgelehnt IP-Nichtübereinstimmung Verwenden Sie für Lösungen und Anfragen denselben Proxy
Cookie läuft schnell ab Von der Website festgelegte kurze TTL Vor Ablauf erneut lösen; Überprüfen Sie das Feld expiry
403 trotz gültigem Cookie Nichtübereinstimmung zwischen Benutzer und Agent Passen Sie UA zwischen Lösungs- und Anforderungssitzungen an
Challenge-Seite wird nicht geladen JavaScript deaktiviert Verwenden Sie einen Vollbrowser (Selenium, Puppeteer)

FAQ

Kann ich cf_clearance zwischen verschiedenen Maschinen teilen?

Nur wenn sie dieselbe IP haben und Sie mit der User-Agent-Zeichenfolge übereinstimmen. Cloudflare verknüpft das Cookie häufig mit der Ursprungs-IP.

Wie lange dauert cf_clearance?

Normalerweise 30 Minuten bis 24 Stunden, abhängig von der Cloudflare-Konfiguration des Websitebesitzers.


Lösen Sie Cloudflare Challenge-Seiten mit CaptchaAI

Holen Sie sich Ihren API-Schlüssel unter captchaai.com.


Verwandte Leitfäden

  • Cloudflare Turnstile Sitekey-Extraktion
  • Cloudflare Turnstile vs. reCAPTCHA
  • reCAPTCHA-Cookie-Anforderungen
Kommentare sind für diesen Artikel deaktiviert.

Verwandte Beiträge

Integrations Bright Data + CaptchaAI: Vollständiger Leitfaden zur Proxy-Integration
Bright Data Proxys mit Captcha AI kombinieren: Setup, Python/Node.js-Codebeispiele, Sticky Sessions und Fehlerbehebung für CAPTCHA-intensive Scraping-Projekte.

Bright Data Proxys mit Captcha AI kombinieren: Setup, Python/Node.js-Codebeispiele, Sticky Sessions und Fehler...

May 04, 2026
Use Cases Selenium CAPTCHA-Handhabung mit Python und CaptchaAI
Selenium CAPTCHA-Verwaltung mit Python und Captcha AI: re CAPTCHA, Cloudflare und mehr automatisch lösen.

Selenium CAPTCHA-Verwaltung mit Python und Captcha AI: re CAPTCHA, Cloudflare und mehr automatisch lösen.

Apr 30, 2026
Explainers GeeTest v4 CAPTCHA-Änderungs- und Lösungsleitfaden
Gee Test v 4 Änderungen und Lösungshandbuch: Unterschiede zu v 3, neue captcha_id-Parameter und Integration mit Captcha AI.

Gee Test v 4 Änderungen und Lösungshandbuch: Unterschiede zu v 3, neue captcha_id-Parameter und Integration mi...

Apr 25, 2026