RatgeberPlattformen und Tools

Turnstile ist mit dem sichtbaren Widget nicht fertig: Jede geschützte Anfrage serverseitig prüfen

Der Browser erzeugt ein Token, der Server muss es vor der Aktion verifizieren. Testen Sie Ablauf, Wiederverwendung und Fehlerpfade statt nur den sichtbaren Erfolg.

Ein einzelnes Ticket passiert eine schmale Kontrollstelle in Richtung eines Schildes, während weitere Tickets davor warten.
Auf dieser Seite

Ein sichtbares Turnstile-Widget beweist nicht, dass ein Formular geschützt ist. Cloudflares Dokumentation zur serverseitigen Validierung verlangt die Prüfung des Tokens über Siteverify. Akzeptiert die Anwendung eine Übermittlung ohne diese Kontrolle, hat ein erfolgreich wirkender Browserablauf noch keine vertrauenswürdige Serverentscheidung hergestellt.

Das Ziel ist einfach: Keine geschützte Aktion darf allein deshalb ausgeführt werden, weil der Browser Erfolg meldet. Erstellen und testen Sie zuerst die Serverentscheidung, verbinden Sie danach Widget und Wiederholungsmöglichkeiten für Besucher. Dieser Leitfaden beschreibt einen zu implementierenden und zu prüfenden Ablauf, nicht einen Test von Leseranwendungen durch ClickSyrup.

Verfolgen Sie das Token vom Browser zum Server

Cloudflares Einstiegsleitfaden trennt den öffentlichen Sitekey vom privaten Secret Key. Der Sitekey gehört in die Client-Integration; das Geheimnis verwendet der Server zur Verifikation. Legen Sie den Secret Key nicht in Browsercode, einem öffentlichen Repository oder einer clientseitig sichtbaren Konfiguration ab, nur damit ein Prototyp funktioniert.

Übermittelt der Browser ein Token zusammen mit dem Formular, senden Sie es vom Backend an den festgelegten Siteverify-Endpunkt. Geheimnis und Token sind die erforderlichen Eingaben. Behandeln Sie die Antwort als zu prüfende Daten, nicht als Erlaubnis allein aufgrund einer abgeschlossenen HTTP-Anfrage. Vor der geschützten Aktion braucht die Anwendung das Verifikationsergebnis.

Die eigentliche Geschäftsaktion muss danach erfolgen. Erst eine E-Mail zu senden, einen Datensatz anzulegen oder eine Anfrage anzunehmen und anschließend das Token zu prüfen, kehrt den Schutz um. Beschreiben Sie die Reihenfolge im Umsetzungsticket ausdrücklich, damit Frontend- und Backend-Team nicht jeweils eine Durchsetzung durch die andere Seite voraussetzen.

Behandeln Sie fehlende Tokens, abgelehnte Tokens und nicht verfügbare Verifikationsantworten bewusst. Akzeptieren Sie die Aktion in diesen Fällen nicht stillschweigend. Bieten Sie berechtigten Besuchern einen brauchbaren Wiederholungsweg und erhalten Sie geeignete ungesendete Eingaben, ohne sensible Daten in Diagnoseprotokolle zu schreiben. Ein verlorener langer Text ist ein zu lösendes Bedienproblem, kein Grund, die Prüfung auszulassen.

Ablauf und Wiederverwendung brauchen eigene Tests

Cloudflare dokumentiert eine Token-Lebensdauer von 300 Sekunden und eine einmalige Validierung. Ein abgelaufenes oder bereits geprüftes Token kann timeout-or-duplicate auslösen. Praktisch bedeutet das: Ein beim Seitenaufruf erzeugtes Token kann unbrauchbar sein, wenn der Besucher ein langes Formular fertig ausgefüllt hat.

Testen Sie dieses langsame Ausfüllen, statt nur direkt nach erfolgreichem Widget abzusenden. Bestätigen Sie, dass die Anwendung ein neues Token erhält und einen erneuten Versuch erlaubt, ohne die Geschäftsaktion unerwartet zu wiederholen. Besucher sollten keine Token-Mechanik verstehen müssen, um sich von einer gewöhnlichen Verzögerung zu erholen.

Trennen Sie Token-Wiederverwendung von der Idempotenz der Geschäftsaktion. Ein gültiges Token garantiert allein nicht, dass nach Netzwerkwiederholung oder Doppelklick niemals zwei identische Datensätze entstehen. Lassen Sie die geschützte Operation gegebenenfalls ihre eigenen Wiederholungen erkennen und testen Sie das unabhängig vom Widget.

Wiederholt das Backend eine Verifikationsanfrage, verwenden Sie die dokumentierten Wiederholungs- und Idempotenzmechanismen der API. Nehmen Sie nicht an, dass dasselbe Token unbegrenzt geprüft werden kann. Halten Sie fest, welche Ebene wiederholt wird: Browserübermittlung, Siteverify-Anfrage oder Geschäftstransaktion. Werden diese Ebenen verwechselt, sind sporadische Fehler schwer zu erklären.

Prüfen Sie vorgesehenen Host und Aktion, nicht nur Erfolg

Die Verifikationsantwort enthält Kontextfelder wie hostname und, sofern konfiguriert, action. Vergleichen Sie sie mit den von der Anwendung festgelegten Sollwerten. Übernehmen Sie keinen erwarteten Host oder Aktionsnamen aus derselben unzuverlässigen Formularübermittlung. Sonst dürfte die Anfrage selbst die Regel bestimmen, die sie erfüllen soll.

Cloudflares Leitfaden zur Hostnamenverwaltung erklärt die Zulassung von Widget-Hosts. Er weist auch darauf hin, dass die Aufnahme einer Stammdomain ihre Subdomains autorisiert. Wählen Sie den Umfang bewusst und prüfen Sie ihn beim Wechsel von Staging zu Produktion. Widget-Konfiguration und Serverkontrolle sollen den vorgesehenen Einsatz ermöglichen, nicht versehentlich fremde Umgebungen zulassen.

Turnstile bleibt eine Schicht. Authentifizierung bestimmt die Identität, Autorisierung die erlaubten Handlungen. Die Anwendung benötigt weiterhin Eingabeprüfung und geeignete Anfragesteuerung. Eine bestandene Challenge rechtfertigt weder beliebige Eingaben noch den Zugriff eines angemeldeten Benutzers auf das Konto einer anderen Person.

Prüfen Sie auch die Seitenauslieferung. Halten Sie bei Caching kontospezifische Antworten und sensible Zustände aus gemeinsam genutzten Caches heraus, entsprechend unserem Cloudflare-Cache-Leitfaden. Eine funktionierende Challenge repariert keine unabhängige Cache-Regel, die private Inhalte offenlegt.

Beweisen Sie negative Fälle vor dem Start

Cloudflare stellt Testschlüssel und Implementierungshinweise für kontrollierte Erfolgs- und Fehlerfälle bereit. Nutzen Sie diese dokumentierten Zugangsdaten in der passenden Testumgebung, nicht als Produktionsschutz. Sie ermöglichen wiederholbare Tests ohne Abhängigkeit vom Ausgang einer echten Besucher-Challenge.

Erstellen Sie einen Abnahmenachweis für gültige Übermittlung, fehlendes Token, fehlgeschlagene Verifikation, abgelaufenes Token, Wiederverwendung eines validierten Tokens und unerwarteten Host oder Aktionsnamen. Erfassen Sie jeweils die sichtbare Antwort und ob das Backend die geschützte Operation tatsächlich ausgeführt hat. Eine beruhigende Meldung allein beweist nicht, dass nichts angenommen wurde.

Nehmen Sie einen Ausfall des Verifikationsdienstes in den Testplan auf und vereinbaren Sie das Besucherverhalten vor dem Start. Prüfen Sie auch die Erholung nach Wiederverfügbarkeit. Ergänzen Sie die Wartungsroutine der Website um diese Kontrollen, besonders nach Änderungen an Formularverarbeitung, Reverse Proxies, Geheimnissen oder Bereitstellungsumgebung.

Das Freigabekriterium ist kein Screenshot des Widgets, sondern ein reproduzierbares Ergebnis: Erlaubte Anfragen werden wie vorgesehen einmal ausgeführt, abgelehnte Anfragen lösen die Aktion nicht aus, Geheimnisse bleiben auf dem Server und berechtigte Besucher können nachvollziehbar erneut beginnen. Das unterscheidet ein sichtbares Bauteil von durchgesetztem Schutz.

Aus der englischen Ausgangsausgabe übersetzt.

Behandelte PlattformenCloudflare

Primärquellen