logo
bars

Cloudflare Turnstile
und CapMonster Cloud

CAPTCHA-Lösung, Website-Installation 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 Turnstile 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 Turnstile, 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 Turnstile
Was ist Cloudflare Turnstile
Cloudflare Turnstile ist ein modernes CAPTCHA von Cloudflare, das Websites vor automatisierten Aktionen schützt. Für Website-Besucher ist die Überprüfung nahezu unsichtbar, es müssen keine Aufgaben gelöst werden: Normalerweise reicht ein Klick auf die Checkbox, wonach das System entscheidet, ob der Besucher durchgelassen oder bei Verdacht auf einen Bot blockiert wird. Im Gegensatz zu Cloudflare Challenge wird das Turnstile-CAPTCHA direkt auf der Website platziert und nicht in einem separaten Fenster – üblicherweise in Anmelde- oder Registrierungsformularen.

Wie man Cloudflare Turnstile über CapMonster Cloud löst

Beim Testen von Formularen mit Cloudflare Turnstile müssen Sie häufig prüfen, ob die Captcha korrekt eingebunden ist und funktioniert.

Sie können die auf Ihrer Seite eingebettete Captcha manuell testen.

  • Öffnen Sie die Formularseite und stellen Sie sicher, dass die Captcha angezeigt wird.
  • Versuchen Sie, das Formular ohne Lösung abzuschicken – der Server sollte einen Fehler melden.
  • Nach einer erfolgreichen Lösung muss das Formular ohne Probleme übermittelt werden.

Für automatisches Lösen können Sie Tools wie CapMonster Cloud einsetzen. Der Dienst nimmt die Captcha-Parameter entgegen, verarbeitet sie auf seinen Servern und liefert einen einsatzbereiten Token zurück. Diesen Token setzen Sie ins Formular ein, 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
Token auf der Seite einsetzenToken auf der Seite einsetzen
arrow
Cloudflare Turnstile-Erkennung mit vorgefertigten Bibliotheken
Der CapMonster Cloud-Service bietet vorgefertigte Bibliotheken für die komfortable Arbeit in den Sprachen Python, JavaScript (Node.js) und C#.
Python
JavaScript
C#
Lösung, Token-Einfügung und Formularversand
Beispiel in Node.js für den vollständigen Zyklus der CAPTCHA-Erkennung auf Ihrer Webseite. Mögliche Ansätze: HTTP-Anfragen verwenden, um HTML und CAPTCHA-Parameter zu erhalten, die Antwort zu senden und das Ergebnis zu verarbeiten; oder mit Automatisierungstools (z.B. Playwright) – Seite öffnen, auf CAPTCHA warten, Parameter senden (zum Testen können Sie sowohl korrekte als auch fehlerhafte Daten senden), Lösung über CapMonster Cloud-Client erhalten, Token ins Formular einfügen und Ergebnis sehen.
// npm install playwright @zennolab_com/capmonstercloud-client

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

async function main() {
  // 1. Turnstile-Lösung über CapMonster Cloud
  const cmcClient = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: 'YOUR_CAPMONSTER_API_KEY' })
  );

  const turnstileRequest = new TurnstileRequest({
    websiteURL: 'http://tsmanaged.zlsupport.com',
    websiteKey: '0x4AAAAAAABUYP0XeMJF0xoy',
  });

  const result = await cmcClient.Solve(turnstileRequest);
  const token = result.solution.token;
  console.log('Turnstile-Token erhalten:', token);

  // 2. Playwright starten
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('http://tsmanaged.zlsupport.com');

  // 3. Login und Passwort ausfüllen
  await page.fill('#username', 'your_username');
  await page.fill('#password', 'your_password');

  // 4. Warten auf das versteckte Token-Feld
  await page.waitForSelector('#token', { state: 'attached', timeout: 60000 });

  // 5. Token einfügen und Feld sichtbar machen
  await page.evaluate((t) => {
    const tokenInput = document.querySelector('#token');
    if (tokenInput) {
      tokenInput.type = 'text';  // Feld sichtbar machen
      tokenInput.value = t;      // Token einfügen
      console.log('Token ins Feld token eingefügt');
    } else {
      console.error('Feld #token nicht gefunden');
    }
  }, token);

  // 6. Überprüfen, dass das Token tatsächlich eingefügt wurde
  const checkValue = await page.$eval('#token', el => el.value);
  console.log('Überprüfung des Token-Werts:', checkValue);

  // 7. Formular absenden
  await page.click('button[type="submit"]');
  console.log('Formular mit Turnstile-Token abgeschickt');

  // await browser.close();
}

main().catch(err => console.error(err));
Wie man Cloudflare Turnstile auf der eigenen Website einbindet
Um sich sicher in der Funktionsweise des CAPTCHAs auf Ihrer Website zurechtzufinden, die Logik seiner Überprüfung zu verstehen, es erneut einzubinden oder neu zu konfigurieren, empfehlen wir Ihnen, diesen Abschnitt zu studieren. Er beschreibt den Prozess der Schutzeinbindung – dies hilft, alle Nuancen schnell zu verstehen.

1. Gehen Sie zur Seite Cloudflare Turnstile, klicken Sie auf Jetzt starten.

2. Registrieren Sie sich beim Service.

3. Klicken Sie in Turnstile Widgets auf die blaue Schaltfläche Add Widget.

HowTo Connect image 1

4. Konfigurieren Sie Cloudflare Turnstile, geben Sie an:

  • Widget name – Name des CAPTCHAs (zur Orientierung, z.B. Login form).
  • Hostname Management – Domains, auf denen das CAPTCHA funktioniert (z.B. example.com).
  • Widget Mode:
    • Managed – optimale Variante, CAPTCHA entscheidet selbst, ob die Checkbox angezeigt wird.
    • Non-interactive – Überprüfung erfolgt automatisch, ohne Klicks.
    • Invisible – vollständig unsichtbar.
  • Pre-clearance – wählen Sie Yes, wenn die Website über Cloudflare Proxy läuft (um CAPTCHA nicht erneut zu durchlaufen).

5. Nach Erstellung des Widgets erhalten Sie zwei Schlüssel – Site Key und Secret Key.

HowTo Connect image 2

6. Clientseitigen Teil einbinden

1) Turnstile-Skript einbinden

Automatisches Rendering (Widget wird beim Laden der Seite selbst erstellt):

<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

Programmgesteuert (Sie erstellen das Widget selbst über JavaScript):

<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" defer></script>

Wichtig: Das Skript muss von der exakten URL geladen werden. Proxy oder Cache können zu Fehlern führen.

2) Container für Widget erstellen

Automatisch:

<div class="cf-turnstile" data-sitekey="<YOUR_SITEKEY>"></div>

Programmgesteuert:

<div id="turnstile-container"></div>

3) Widget-Konfiguration

Über data-Attribute:

<div class="cf-turnstile"
            data-sitekey="<YOUR_SITEKEY>"
            data-theme="light"
            data-size="normal"
            data-callback="onSuccess">
          </div>

Über JavaScript:

const widgetId = turnstile.render("#turnstile-container", {
  sitekey: "<YOUR_SITEKEY>",
  theme: "light",
  size: "normal",
  callback: token => console.log("Token:", token)
});

4) Arbeit mit Token

const token = turnstile.getResponse(widgetId);      // Token abrufen
const isExpired = turnstile.isExpired(widgetId);    // Ablauf überprüfen
turnstile.reset(widgetId);                          // Zurücksetzen
turnstile.remove(widgetId);                         // Entfernen
turnstile.execute("#turnstile-container");         // Manueller Start

5) Integration mit Formular

<form id="my-form" method="POST">
  <input type="hidden" name="cf-turnstile-response" id="cf-turnstile-response">
  <button type="submit">Absenden</button>
</form>

<script>
function onSuccess(token) {
  document.getElementById("cf-turnstile-response").value = token;
}
</script>

CodebeispielCodebeispiel
arrow

6) Serverseitigen Teil konfigurieren

Prozess der serverseitigen Überprüfung:

  • Client: Benutzer durchläuft Turnstile auf der Seite → Token wird erstellt.
  • Formular wird abgeschickt: Token wird zusammen mit Formulardaten an den Server gesendet.
  • Server: Führt POST-Anfrage an Cloudflare Siteverify-API mit Token und Secret durch.
  • Cloudflare: Gibt JSON mit Ergebnis zurück (success: true/false) und zusätzlichen Informationen (action, hostname, Durchlaufzeit).
  • Server: Entscheidet, ob die Benutzeraktion erlaubt oder abgelehnt wird.

Siteverify-API:

POST
https://challenges.cloudflare.com/turnstile/v0/siteverify

Anfrageparameter:

  • secret (erforderlich): Geheimer Turnstile-Schlüssel aus dem Cloudflare-Panel
  • response (erforderlich): Auf dem Client erhaltenes Token
  • remoteip (optional): IP-Adresse des Benutzers (empfohlen)
  • idempotency_key (optional): Eindeutige UUID zum Schutz vor wiederholten Überprüfungen

Token-Eigenschaften:

  • Maximale Länge: 2048 Zeichen
  • Gültig für 5 Minuten
  • Einmalig
  • Bei Ablauf oder erneuter Überprüfung gibt die API den Fehler timeout-or-duplicate zurück

Überprüfungsbeispiel in PHPÜberprüfungsbeispiel in PHP
arrow

Background
Mögliche Fehler und Debugging
Bug Icon
Fehlerhafte Parameter
CAPTCHA wird nicht angezeigt oder gibt Fehler wie invalid-input-secret, missing-input-response, invalid-input-response zurück. Überprüfen Sie die Aktualität von sitekey und secret key sowie die Einstellungen im Cloudflare Dashboard.
Bug Icon
Lösungs-Timeout
Token ist abgelaufen (gültig für 300 Sekunden) oder wurde nicht rechtzeitig erhalten. Stellen Sie stabile Verbindung und korrekte API-Integration sicher.
Bug Icon
Leeres oder falsches Token
Parameter cf-turnstile-response fehlt oder ist fehlerhaft. Überprüfen Sie die Token-Übergabe an das Formular und den Server.
Bug Icon
Antwort success=false
Token ist ungültig, abgelaufen oder bereits verwendet. Jedes Token kann nur einmal überprüft werden. Aktivieren Sie die Protokollierung von Siteverify-Anfragen und -Antworten für die Analyse.
Tests der Schutzstabilität
Stellen Sie nach der Integration sicher, dass das System die Website wirklich vor automatisierten Aktionen schützt.
Tipps zu Sicherheit und Optimierung
Überprüfen Sie Token nur auf dem Server, rufen Sie niemals die Siteverify-API vom Frontend aus auf – dies würde Ihren geheimen Schlüssel offenlegen.
Verwenden Sie Umgebungsvariablen oder ein Secret-Management-System, anstatt Schlüssel im Code zu speichern.
Überprüfen Sie zusätzliche Felder (<b>hostname</b>, <b>action</b>), um sicherzustellen, dass die Anfrage von Ihrer Website kam.
Verwenden Sie HTTPS – alle Aufrufe an Siteverify sollten über eine gesicherte Verbindung erfolgen.
Implementieren Sie Fehlerbehandlung – zeigen Sie bei API-Nichtverfügbarkeit eine verständliche Meldung ohne Offenlegung interner Daten.
Beschränken Sie die Verwendung des Sitekey nach Domains.
Fügen Sie dem Formular Links zur <b>Datenschutzrichtlinie</b> und den <b>Nutzungsbedingungen von Cloudflare</b> hinzu, falls dies von Ihrer Organisation oder Datenschutzrichtlinie gefordert wird.
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 Turnstile 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 Turnstile 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