presseportale/app/Services/Web
Kevin Adametz 06d2889a4d 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>
2026-10-09 08:49:58 +00:00
..
CategoryArchivePageData.php web: Jahresarchiv je Branche, Kategoriebeschreibungen, Portalname im Titel (Roadmap 2.3) 2026-09-17 10:25:29 +00:00
CategoryPageData.php images: Lebenszyklus — Veröffentlichungsgate, published_ever_at, Snapshot der veröffentlichten Fassung, Sofortlöschung, Legacy-Bereinigung, Beweiszugriff, Korrekturweg (Bildkennzeichnung Block E) 2026-09-22 09:53:49 +00:00
ContactMessageNotifier.php feat: Spamschutz für Kontakt-Widget und Registrierung mit Cloudflare Turnstile 2026-10-09 08:49:58 +00:00
HomePageData.php images: Lebenszyklus — Veröffentlichungsgate, published_ever_at, Snapshot der veröffentlichten Fassung, Sofortlöschung, Legacy-Bereinigung, Beweiszugriff, Korrekturweg (Bildkennzeichnung Block E) 2026-09-22 09:53:49 +00:00
HubPageData.php web: Stale-while-revalidate-Cache für die öffentlichen Seitendaten 2026-07-20 14:29:15 +00:00
MarketDataService.php betrieb: Logs je Thema in Tagesdateien (billing, ki, monitoring, market); Doku: Duplicate-Content-Decision durch Anhang 2 abgelöst 2026-09-18 13:35:42 +00:00
NewsroomDetailPageData.php images: Lebenszyklus — Veröffentlichungsgate, published_ever_at, Snapshot der veröffentlichten Fassung, Sofortlöschung, Legacy-Bereinigung, Beweiszugriff, Korrekturweg (Bildkennzeichnung Block E) 2026-09-22 09:53:49 +00:00
NewsroomsPageData.php performance: Caching, deferred Tracking & externe Timeouts (H7, M12, M13) 2026-07-14 13:49:47 +00:00
PreisePageData.php web: Preise-Seite zeigt unter Weitere Leistungen nur noch Depublizieren 2026-07-16 11:34:22 +00:00
PricingTransparencyData.php web: Transparenzseiten — was kostet, ohne Abo, loeschen/aendern (Roadmap 2.4) 2026-09-17 12:00:28 +00:00
ReleaseDetailPageData.php web/seo: Änderungsdatum unabhängig von Aufrufen, EN-URLs in Sitemap und Legacy-API, signierte Bounce-Referenz, Merge/Canonical konsistent (Umsetzungsaudit 29.09.: R-02 bis R-11, N17, N18, OPT-1, OPT-2; 02.10.: O01) 2026-10-02 13:09:00 +00:00
ReportedUrlResolver.php web/api/ki: Soft Deletes wieder wirksam, Caches bei Firmenwechsel, KI-Ergebnis an Inhalt gebunden (Audit Block 3+4, Deploy D) 2026-09-18 10:40:48 +00:00
SuchePageData.php performance: Caching, deferred Tracking & externe Timeouts (H7, M12, M13) 2026-07-14 13:49:47 +00:00
TickerData.php web: Stale-while-revalidate-Cache für die öffentlichen Seitendaten 2026-07-20 14:29:15 +00:00
VeroeffentlichenPageData.php Backend-WIP: Kontakt-Queue, Page-Cache, Validierungs-Feedback, i18n 2026-07-09 15:38:11 +00:00