logo
bars

Cloudflare Challenge
und CapMonster Cloud

Captcha-Lösung, Installation auf der Website und Testen.
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.

  // 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/145.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):
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 <b>Datenschutzerklärung</b> und zu den <b>Nutzungsbedingungen</b> 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