Cloudflare Challenge
und CapMonster Cloud

Captcha-Lösung, Installation auf der Website und Testen.

Preise für Cloudflare Challenge-Lösung

CAPTCHA
Preis (USD)
$ 1.30
1000 Token
$ 1.30
1000 Token
Sie haben eine Website mit eingebauter Captcha- oder Bot-Schutzlösung übernommen, aber keinen Zugriff auf den Quellcode? Dann stellt sich schnell die Frage: Welche Lösung ist installiert, ist sie korrekt konfiguriert und wie lässt sie sich testen?

In diesem Artikel haben wir versucht, alle wichtigen Fragen zu beantworten. Der erste Schritt bei der Lösung der Aufgabe besteht darin festzustellen, welches Schutzsystem eingesetzt wird. Dazu können Sie die Liste beliebter Captchas und Anti-Bot-Schutzsysteme heranziehen, in der visuelle Beispiele und zentrale Merkmale aufgeführt sind, die Ihnen helfen, schnell zu erkennen, womit Sie es zu tun haben.

Wenn Sie feststellen, dass auf Ihrer Website Cloudflare Challenge eingesetzt wird, besteht der nächste Schritt darin, seine Eigenschaften und Funktionsweise genauer zu untersuchen. Ebenfalls in diesem Artikel finden Sie eine Anleitung zur Integration von Cloudflare Challenge, damit Sie vollständig verstehen, wie das System auf Ihrer Website arbeitet. So können Sie nicht nur den aktuellen Schutz besser einschätzen, sondern auch seine Wartung vorausschauend planen.

Was ist Cloudflare Challenge
Was ist Cloudflare Challenge
Cloudflare Challenge (oder Interstitial Challenge Pages) ist ein Überprüfungssystem von Cloudflare, das Websites vor Bots, Spam und schädlichem Traffic schützt. Wenn Cloudflare vermutet, dass die Anfrage nicht von einem echten Besucher stammt (z. B. wegen einer verdächtigen IP oder deaktiviertem JavaScript), zeigt es eine Challenge an – also eine „Prüfung“, die bestätigt, dass der Besucher ein Mensch ist. Dieser Challenge-Typ unterscheidet sich von Turnstile dadurch, dass der Nutzer zuerst eine Zwischenseite mit der Meldung „Just a moment…“ und „Verifying you are human. This may take a few seconds.“ sieht.

Wie man Cloudflare Challenge über CapMonster Cloud löst

Beim Testen des Schutzes mit der Cloudflare Challenge ist es wichtig sicherzustellen, dass die Überprüfung korrekt funktioniert und verdächtigen Traffic richtig herausfiltert.
Sie können den auf Ihrer Seite installierten Challenge manuell testen:
  • Öffnen Sie die entsprechende Seite im Inkognito-Modus und stellen Sie sicher, dass die Challenge angezeigt wird.
  • Versuchen Sie, im Browser falsche cf_clearance-Cookies einzusetzen (Details siehe unten) — der Server sollte einen Fehler zurückgeben.
  • Nach erfolgreicher Challenge-Lösung sollte sich die eigentliche Seite ohne weitere Prüfung öffnen.
Für automatisches Testen und Captcha-Erkennung können spezialisierte Dienste wie CapMonster Cloud genutzt werden — ein Tool, das Captcha-Parameter entgegennimmt, verarbeitet und eine fertige Lösung zurückgibt. Diese Lösung (Token oder Cookie) kann an Browser oder HTTP-Client übergeben werden, um die Prüfung ohne Benutzerinteraktion zu bestehen.

Die Arbeit mit CapMonster Cloud über die API umfasst in der Regel folgende Schritte:

Aufgabe erstellenAufgabe erstellen
arrow
API-Anfrage sendenAPI-Anfrage senden
arrow
Ergebnis empfangenErgebnis empfangen
arrow
Einsetzen von cf_clearanceEinsetzen von cf_clearance
arrow
Lösen der Cloudflare Challenge mit fertigen Bibliotheken
CapMonster Cloud bietet fertige Bibliotheken für Python, JavaScript (Node.js) und C#.
Python
JavaScript
C#
Challenge-Lösung und Cookie-Einbindung
Beispiel in Node.js für einen vollständigen Ablauf der Captcha-Erkennung auf Ihrer Webseite. Ansätze: Abruf des HTML via HTTP, Extrahieren der Schutzparameter, Senden an CapMonster, Verarbeiten der Antwort. Oder mit Automatisierungstools wie Playwright — Seite öffnen, Challenge abwarten, Parameter auslesen, Ergebnis holen, cf_clearance setzen (richtig oder falsch für Tests) und Ergebnis betrachten.
python

  // npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium

import { chromium } from 'playwright';
import {
  CapMonsterCloudClientFactory,
  ClientOptions,
  TurnstileRequest
} from '@zennolab_com/capmonstercloud-client';

// Einstellungen — durch eigene ersetzen
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://www.example.com';
const SITE_KEY = 'xxxxx'; // beliebige Zeichenkette möglich
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36';

// Proxy-Einstellungen
const proxy = {
  proxyType: 'http',
  proxyAddress: '8.8.8.8',
  proxyPort: 8080,
  proxyLogin: 'proxyLogin',
  proxyPassword: 'proxyPassword'
};

async function main() {

  const cmcClient = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: API_KEY })
  );

  // Browser starten
  const browser = await chromium.launch({
    headless: false,
    proxy: proxy.proxyAddress ? {
      server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
      username: proxy.proxyLogin,
      password: proxy.proxyPassword
    } : undefined
  });

  // Kontext mit User-Agent und Fenstergröße erstellen (optional)
  const context = await browser.newContext({ userAgent: USER_AGENT, viewport: { width: 1280, height: 800 } });

  // Seite öffnen und URL laden
  const page = await context.newPage();
  const resp = await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('Status der ersten Anfrage:', resp?.status());

  // HTML abrufen und in Base64 konvertieren für CapMonster
  const htmlBase64 = Buffer.from(await page.content(), 'utf-8').toString('base64');

  // Turnstile-Aufgabe erstellen, um cf_clearance zu erhalten
  const solveResult = await cmcClient.Solve(new TurnstileRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    cloudflareTaskType: 'cf_clearance',
    htmlPageBase64: htmlBase64,
    userAgent: USER_AGENT,
    proxy: proxy.proxyAddress ? proxy : undefined
  }));

  const cf_clearance = solveResult?.solution?.cf_clearance;
  if (!cf_clearance) {
    console.error('cf_clearance konnte nicht von CapMonster abgerufen werden:', solveResult);
    await browser.close();
    return;
  }
  console.log('cf_clearance erhalten:', cf_clearance);

  // cf_clearance-Cookie zum Browser-Kontext hinzufügen
  await context.addCookies([{
    name: 'cf_clearance',
    value: cf_clearance,
    domain: '.' + new URL(TARGET_URL).hostname,
    path: '/',
    httpOnly: true,
    secure: true
  }]);
  console.log('Cookie cf_clearance wurde erfolgreich hinzugefügt.');

  // Seite erneut mit gesetztem cf_clearance öffnen
  const page2 = await context.newPage();
  const resp2 = await page2.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('Status der Anfrage nach Setzen von cf_clearance:', resp2?.status());

  await browser.close();
  console.log('Skript beendet.');
}

main().catch(err => {
  console.error('Es ist ein Fehler aufgetreten:', err);
  process.exit(1);
});
  
Wie man Cloudflare Challenge auf der eigenen Website einrichtet
Um sicher mit dem Challenge-System zu arbeiten, empfehlen wir, diesen Abschnitt zu lesen. Hier wird beschrieben, wie man die Prüfung einrichtet und anpasst.
1. Registrieren Sie sich oder melden Sie sich an und verbinden Sie Ihre Domain mit Cloudflare.
2. Aktivieren Sie die Challenge über eine WAF-Regel.
Navigieren Sie zu: Security → Custom Rules → Create rule
HowTo Connect image 1

Beispielbedingung (gesamte Seite „login“ prüfen):
javascript
http.request.uri.path contains "/login"
3. Wählen Sie die Aktion:
Managed Challenge (empfohlen) — das System entscheidet automatisch, ob dem Besucher eine Challenge angezeigt wird.
Konfigurieren Sie die weiteren Optionen und klicken Sie auf Deploy.
Nach erfolgreicher Prüfung erhält der Nutzer ein cf_clearance-Cookie, das Wiederholungsprüfungen verhindert, wenn derselbe Browser erneut zugreift.
Background
Mögliche Fehler und Debugging
Bug Icon
Falsche Domain oder Regelkonfiguration
Die Challenge wird nicht angezeigt. Prüfen Sie, ob die WAF-Regel dem richtigen URI/Pfad/Host zugeordnet ist.
Bug Icon
Zeitüberschreitung beim Laden der Seite oder Challenge
Der Browser oder Client hat nicht auf die Antwort von Cloudflare gewartet. Erhöhen Sie die Timeouts.
Bug Icon
Erneute Prüfung oder abgelaufene cf_clearance
Wenn ein abgelaufenes cf_clearance-Cookie verwendet wird, zeigt das System erneut eine Challenge.
Bug Icon
Nach der Challenge folgt eine weitere Überprüfung
Die gleichzeitige Nutzung von Challenge + benutzerdefinierten Regeln kann zu Schleifen führen. Befolgen Sie die Empfehlungen von Cloudflare zur Fehlerbehebung.
Tests der Schutzstabilität
Tipps zu Sicherheit und Optimierung
Konfigurieren Sie WAF-Regeln sowie Managed/JS/Interactive Challenge entsprechend dem Risiko.
Protokollieren Sie Sicherheitsereignisse und Challenge-Status, um Ursachen und Fehlalarme zu erkennen.
Für Transparenz fügen Sie Links zur <span class="font-bold">Datenschutzerklärung</span> und zu den <span class="font-bold">Nutzungsbedingungen</span> von Cloudflare/Ihrer Website auf Challenge-Seiten hinzu.
Fazit

Wenn Sie eine Website übernommen haben, auf der bereits ein Captcha oder ein anderes Schutzsystem installiert ist und Sie keinen Zugriff auf den Code haben, ist das kein Problem! Es ist ziemlich einfach festzustellen, welche Technologie genau verwendet wird. Und um die korrekte Funktionsweise zu überprüfen, können Sie den Erkennungsdienst CapMonster Cloud in einer isolierten Testumgebung nutzen, um sicherzustellen, dass der Mechanismus zur Tokenverarbeitung und die Prüflogik ordnungsgemäß funktionieren.

Im Fall von Cloudflare Challenge reicht es aus, das System zu erkennen, sein Verhalten zu analysieren und sich zu vergewissern, dass der Schutz korrekt arbeitet. In diesem Artikel haben wir gezeigt, wie Sie Cloudflare Challenge identifizieren und wo Sie Anleitungen für die Einbindung oder Neukonfiguration finden, damit Sie den Schutz zuverlässig betreiben und seine Arbeit unter Kontrolle halten können.

Conclusion

Häufig gestellte Fragen zu Cloudflare Challenge

Cloudflare verwendet das Cookie cf_clearance, um einen Client zu erkennen, der die Prüfung bereits bestanden hat. Die CapMonster Cloud API gibt es in der Antwort von getTaskResult zurück.

Für reine HTTP-Anfragen: Senden Sie es im Header Cookie: cf_clearance=<value> bei nachfolgenden Anfragen an die Zielwebsite.

Für Browser-Automatisierung: Fügen Sie es in den Browserkontext ein, bevor Sie die geschützte URL mit Playwright, Selenium, Puppeteer oder einem anderen Headless-Browser neu laden, um die Cloudflare-Seite „Just a moment“ automatisiert zu lösen.

Wenn ein cf_clearance-Cookie nicht mehr gültig ist, kann Cloudflare die Challenge erneut anzeigen, anstatt Zugriff auf den geschützten Inhalt zu gewähren. In diesem Fall:

  1. Erstellen Sie eine neue createTask-Anfrage mit dem neuen htmlPageBase64 (Base64-kodierte HTML-Seite „Just a moment“, die mit einer 403-Antwort angezeigt wird) aus der Challenge-Antwort
  2. Erhalten Sie einen neuen cf_clearance-Wert.
  3. Wiederholen Sie die Anfrage an die Zielwebsite mit dem neuen cf_clearance-Cookie.

Turnstile bettet in der Regel ein Widget in eine Seite oder einen Formularablauf ein, während Cloudflare Bot Challenge die Anfrage mit einer separaten Zwischenseite unterbricht, bevor die Zielwebsite geladen wird.

Für Cloudflare Challenge unterstützt CapMonster Cloud zwei Ergebnismodi: Es kann entweder ein Token oder ein cf_clearance-Cookie zurückgegeben werden.

  • Bei der tokenbasierten Option kann die Aufgabe mit CapMonster Cloud-Proxys gelöst werden. In bestimmten Fällen können Sie auch Ihren eigenen Proxy verwenden.
  • Wenn Sie das cf_clearance-Cookie im Ergebnis benötigen, müssen Sie beim Erstellen der Aufgabe Ihren eigenen Proxy verwenden.

Details zur Proxy-Nutzung finden Sie in der Aufgabendokumentation.

CapMonster Cloud bietet fertige Bibliotheken für Python, JavaScript/Node.js und C#. Jede Bibliothek umfasst den vollständigen Anfragezyklus, einschließlich Erstellen einer Lösungsaufgabe, Abfragen des Ergebnisses, und gibt das Token oder cf_clearance-Cookie zurück, sobald die Challenge gelöst ist.