Cloudflare Turnstile: so funktioniert es und wie man es löst (bald verfügbar)
Cloudflare Turnstile ist ein Captcha, das vom Besucher meist nichts verlangt. Es führt Prüfungen im Browser durch und besteht in den meisten Fällen ohne jedes Rätsel. Ist es sich nicht sicher, zeigt es unter Umständen einen kurzen interaktiven Schritt. Das Widget schreibt dann ein Token in das Formular, und die Website prüft dieses Token bei Cloudflare. Die Unterstützung für Turnstile bei Scarnox kommt bald. Dieser Leitfaden erklärt, wie das Widget funktioniert, warum es oft mit anderen Challenges verwechselt wird, und welche allgemeinen Ansätze für legitime Arbeit es gibt.
Wie das Widget eingebettet wird
Die Seite enthält ein Container-Element mit der Klasse cf-turnstile und einem Attribut data-sitekey. Das Turnstile-Skript lädt, führt seine Prüfungen aus und fügt ein verstecktes Eingabefeld namens cf-turnstile-response hinzu. Der Wert dieses Feldes ist das Token. Das Formular sendet es mit den übrigen Feldern, und das Backend der Website schickt es zusammen mit dem geheimen Schlüssel der Website an den Verifizierungsendpunkt von Cloudflare.
Wie bei anderen Token-Widgets erfolgt die Verifizierung auf dem Server. Ein Formular, das jeden Wert in diesem Feld akzeptiert, ohne ihn zu prüfen, ist nicht wirklich geschützt.
Modi und was sie für ein Skript bedeuten
Turnstile kann in mehr als einem Modus laufen. Im verwalteten Modus entscheidet Cloudflare, ob ein interaktiver Schritt gezeigt wird. Im nicht interaktiven Modus fragt das Widget den Besucher nie nach etwas und zeigt nur einen Status. Im unsichtbaren Modus wird gar nichts angezeigt. Für ein Skript ändert der Modus, was Sie auf der Seite sehen, aber das Ergebnis ist dasselbe: ein Token im Formularfeld, auf dem Server verifiziert.
Tokens sind kurzlebig und nur einmal verwendbar. Senden Sie das Formular bald nach der Erzeugung des Tokens ab, und verwenden Sie ein Token, das bereits verifiziert wurde, nicht noch einmal.
Warum es Automatisierung blockiert
Turnstile betrachtet Signale aus der Browser-Umgebung und das Verhalten der Sitzung. Ein Standard-Headless-Browser, ein fehlender oder inkonsistenter Satz von Browser-Funktionen, eine neue Sitzung ohne Verlauf und eine verdächtige Netzwerkadresse können die Entscheidung in Richtung einer Challenge oder einer Sperre lenken. Die Signale gehören zur selben Familie wie die anderer scorebasierter Prüfungen, weshalb sich die Ansätze ähneln.
Legitime Ansätze
Diese Ansätze funktionieren für legitime Arbeit:
- Für Seiten, die Turnstile laden, einen echten Browser verwenden. Ein normales Browser-Profil mit konsistenten Einstellungen wird seltener herausgefordert als ein nackter Automatisierungs-Build. Der Leitfaden Erkennung von Headless-Browsern listet die gängigen Signale auf.
- In der Sitzung bleiben. Behalten Sie Cookies über die Seiten Ihres Workflows hinweg, damit der Besucher nicht bei jeder Anfrage neu aussieht.
- Ihre Anfragen takten. Ein gleichmäßiges, menschenähnliches Tempo reduziert Challenges weit stärker als jeder Einzeltrick.
- Lesen Sie zuerst die Regeln der durch Cloudflare geschützten Website. Viele geschützte Websites veröffentlichen eine API oder einen Feed. Prüfen Sie das, bevor Sie einen Browser-Ablauf bauen. Der Leitfaden Cloudflare-geschützte Websites scrapen behandelt den Ansatz gründlicher.
- Testschlüssel in der Entwicklung verwenden. Cloudflare veröffentlicht Test-Sitekeys für die Entwicklung, die vorhersagbare Ergebnisse ohne echte Prüfung liefern. Sie sind für Ihre eigenen Integrationstests gedacht, nicht für Produktiv-Traffic.
- Den Betreiber fragen. Wenn Sie die Website betreiben, können Sie die Turnstile-Einstellungen für die Pfade anpassen, die Ihre automatisierten Tests nutzen. Wenn nicht, bitten Sie um eine Allowlist oder eine API.
Was ein Turnstile-Solver tun wird
Ein tokenbasierter Turnstile-Solver nimmt Sitekey und Seiten-URL entgegen, erzeugt ein gültiges Token für das Feld cf-turnstile-response und gibt es an Ihren Code zurück. Ihr Code schreibt das Token in das Formular und sendet es zügig ab. Das ist dasselbe Muster wie bei der aktiven PopularCaptcha-Integration, nur mit einem anderen Aufgabentyp.
Scarnox löst Turnstile heute noch nicht live. Der einzige Live-Aufgabentyp ist derzeit PopularCaptcha, proxyless. Turnstile kommt bald, und die Details zur Anfrage stehen in der API-Referenz, sobald es verfügbar ist. Entwickeln Sie nicht gegen eine angenommene Schnittstelle, bevor es so weit ist.
Häufige Fehler
Turnstile-Integrationen scheitern meist auf vorhersehbare Weise. Der häufigste Fehler ist, ein Token zu verwenden, das abgelaufen ist oder bereits verifiziert wurde. Tokens sind nur einmal gültig, ein erneuter Versuch nach einem fehlgeschlagenen Formularabsenden braucht also ein frisches Widget-Ergebnis, nicht den alten Wert. Der zweite ist ein Sitekey, der zu einer anderen Umgebung gehört. Ein Entwicklungsschlüssel auf einer Produktivseite oder umgekehrt führt zu einem Verifizierungsfehler, der wie ein Fehler in Ihrem Code aussieht. Prüfen Sie, welchen Schlüssel die Seite verwendet, bevor Sie etwas anderes debuggen.
Ein weiterer häufiger Fehler ist, einen interaktiven Schritt als Fehlschlag zu werten. Im verwalteten Modus kann Turnstile manchen Besuchern einen kurzen Schritt zeigen, und ein Skript, das ein stilles Bestehen erwartet, bleibt daran hängen. Bauen Sie den Ablauf so, dass er auf das Ergebnis des Widgets wartet und den Fall behandelt, dass das Widget mehr verlangt.
Verwenden Sie den Feldnamen schließlich nicht fest, ohne ihn auf der Live-Seite zu prüfen. Das Eingabefeld cf-turnstile-response ist der Standard, aber eine Website kann das Widget anders einbinden, und das gerenderte Formular zu lesen geht schneller als zu raten.
Verantwortungsvoll scrapen
Eine durch Turnstile geschützte Website zu scrapen ist eine übliche Aufgabe und braucht dieselbe Sorgfalt wie jedes andere Scraping. Prüfen Sie die robots.txt und die Nutzungsbedingungen. Halten Sie Ihre Rate niedrig und sammeln Sie keine personenbezogenen Daten, die Sie nicht brauchen. Wo eine Website eine API hat, bevorzugen Sie diese. Der Leitfaden ist Web Scraping legal behandelt die wichtigsten Fragen.
Vorbereitung
Erstellen Sie ein Konto, um mit einer kostenlosen Testphase zu starten, ganz ohne Karte. Wenn die Turnstile-Unterstützung live geht, können Sie es auf Ihren eigenen Seiten testen, bevor Sie etwas gegen eine echte Website laufen lassen.