Web-Demo: 2 Gratis-Analysen direkt auf der Webseite

Worker (/demo auf behoerdenklar-proxy):
- Turnstile-Verifikation serverseitig (Bot-Mauer)
- Analyse 1 anonym (1x pro IP/30 Tage), Analyse 2 nur mit E-Mail
  (SHA-256-Hash mit Pepper, dauerhaft — nie Klartext gespeichert)
- IP-Gesamtlimit 3/30 Tage, globales Tagesbudget 100 (~2,50 EUR Deckel)
- Wegwerf-Mail-Blockliste, 5-MB-Limit, CORS nur eigene Domain
- Prompt/Schema identisch zur App (ohne Antwort-Generator)

Webseite:
- demo.html im Papier-Design: Einwilligung, Upload mit Client-Downscaling
  (2000px/JPEG wie App), Ampel-Logik, Ergebnis-Karten, Warteliste-CTA
  mit vorbelegter E-Mail, gestaffelter Ablauf 1. anonym / 2. mit E-Mail
- Startseite verlinkt Demo im Hero
- Datenschutz: neuer Abschnitt 8 Gratis-Demo (Einwilligung, Turnstile,
  E-Mail-Hash), Folgeabschnitte neu nummeriert; Sitemap + /demo

Ende-zu-Ende getestet: echte Analyse (Jobcenter-Testbrief korrekt erklärt,
Ampel erkennt fruehere Absagefrist), Schummler-Szenarien (Browser-Loeschen,
doppelte E-Mail) serverseitig abgefangen. Dabei entdeckt: Anthropic-Key
war ungueltig -> erneuert (App-Analyse funktionierte wieder).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-24 13:06:03 +02:00
parent 02523b0467
commit ec6ec22421
8 changed files with 899 additions and 3 deletions

View File

@@ -8,6 +8,10 @@ compatibility_date = "2026-07-01"
[vars]
TAGES_LIMIT = "20"
TAGES_LIMIT_IP = "100"
# Web-Demo (/demo): hartes Tagesbudget über alle Nutzer (Kosten-Deckel,
# 100 Analysen ≈ 2,50 €/Tag Maximalschaden) + IP-Limit über 30 Tage
DEMO_TAGES_BUDGET = "100"
DEMO_LIMIT_IP = "3"
[[kv_namespaces]]
binding = "RATE_LIMIT"