feat: Spamschutz für Kontakt-Widget und Registrierung mit Cloudflare Turnstile

- Turnstile für Gäste und unbestätigte Konten (TurnstileVerifier,
  <x-turnstile>); ist Cloudflare nicht erreichbar, wird durchgelassen und
  im Verlauf, in der Kontakt-Queue und in der Betriebsüberwachung markiert
- Inhaltsfilter des Kontaktformulars (fremde Links, Floskel mit
  Seitentitel, Zeichensalat, Sperrliste, Absenden unter 3 Sekunden);
  Treffer landen in der Spam-Quarantäne ohne Mail, Löschung nach 30 Tagen
- Admin: Filter „Spam“, Sammelaktion, „Kein Spam“ holt die Mail nach
- Registrierung lehnt Zufallsnamen ab; users:prune-bot-registrations
  (täglicher Lauf erst mit USERS_PRUNE_BOT_REGISTRATIONS=true)
- contact-messages:quarantine-spam für den Altbestand
- CSP erlaubt challenges.cloudflare.com, Log-Kanal spam
- Datenschutzerklärung: Abschnitt 6a Cloudflare Turnstile (Vorschlag)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-10-09 08:49:58 +00:00
parent 61f449f483
commit 06d2889a4d
40 changed files with 1992 additions and 40 deletions

View file

@ -207,6 +207,49 @@
Aufbewahrungspflichten oder berechtigten Interessen an einer weiteren Speicherung
entgegenstehen.
</p>
<p>
Anfragen, die unser Spamfilter als unerwünschte Werbung oder automatisierte Eingabe
erkennt, werden ohne Weiterleitung an unser Team zurückgehalten, damit wir Fehleinstufungen
prüfen können, und spätestens nach 30 Tagen automatisch gelöscht.
</p>
{{-- Spamschutz mit Cloudflare Turnstile (ENTWICKLUNGSPLAN-SPAMSCHUTZ-2026-10-09.md), Vorschlag zur juristischen Freigabe. --}}
<h2>6a. Schutz vor automatisierten Anfragen (Cloudflare Turnstile)</h2>
<p>
Um unsere Formulare vor automatisierten Eingaben (Spam, Bots) zu schützen, setzen wir im
Kontaktformular und bei der Registrierung den Dienst Turnstile ein. Anbieter ist die
Cloudflare, Inc., 101 Townsend St., San Francisco, CA 94107, USA.
</p>
<p>
Turnstile wird erst geladen, wenn Sie das Kontaktformular öffnen oder die
Registrierungsseite aufrufen. Der Dienst prüft anhand technischer Merkmale, ob die Eingabe
von einem Menschen stammt; in der Regel ohne dass Sie etwas tun müssen. Dabei werden
insbesondere verarbeitet:
</p>
<ul>
<li>IP-Adresse,</li>
<li>Informationen zu Browser und Betriebssystem (z. B. User-Agent, Spracheinstellungen),</li>
<li>Merkmale des Seitenaufrufs und der Interaktion mit der Prüfung,</li>
<li>Zeitpunkt der Prüfung.</li>
</ul>
<p>
Turnstile setzt nach Angaben von Cloudflare keine Cookies zu Werbe- oder Trackingzwecken
und nutzt die Daten nicht für personalisierte Werbung. Wir erhalten von Cloudflare nur
das Ergebnis der Prüfung. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO; unser
berechtigtes Interesse liegt darin, Missbrauch unserer Formulare zu verhindern, etwa den
massenhaften Versand von Bestätigungs-E-Mails an fremde Adressen. Für den Zugriff auf
Informationen in Ihrem Endgerät ist Rechtsgrundlage § 25 Abs. 2 Nr. 2 TDDDG, da die
Prüfung für den sicheren Betrieb des von Ihnen genutzten Formulars unbedingt
erforderlich ist.
</p>
<p>
Cloudflare kann Daten auch in den USA verarbeiten. Cloudflare ist nach dem
EU-US Data Privacy Framework zertifiziert; die Übermittlung erfolgt auf Grundlage des
Angemessenheitsbeschlusses der Europäischen Kommission (Art. 45 DSGVO). Weitere
Informationen finden Sie in den Datenschutzhinweisen von Cloudflare
(<a href="https://www.cloudflare.com/privacypolicy/" target="_blank" rel="noopener">cloudflare.com/privacypolicy</a>)
und zu Turnstile (<a href="https://www.cloudflare.com/turnstile-privacy-policy/" target="_blank" rel="noopener">cloudflare.com/turnstile-privacy-policy</a>).
</p>
@if ($isHub)
<h2>7. Kundenkonto und Registrierung auf dem Hub</h2>