48fe69cdab
Pentest Runde 17: 21.1 Access-Token TTL war 7 Tage statt 15min: docker-compose.yml und .env.example standen schon richtig auf 15m als Default. Die alten Beispiel-.env-Files (backend/.env.example, docker/.env.example) hatten noch die alte Konvention "7d". Beide auf 15m korrigiert + explizites JWT_REFRESH_EXPIRES_IN=7d ergänzt. Auf prod muss die echte .env entsprechend angepasst werden. 17.5 Alte Pentest-Daten in DB: Cleanup-Script erweitert um Pentest-Marker-Erkennung: - Email-Pattern: ^hacker@, ^attacker@, ^pentest@, @evil\. - XSS-Marker: <script, onerror=, javascript: - Sonstige: SQL-Injection, Path-Traversal Bewusst eng gefasst (Marker MUSS am Email-Anfang stehen), damit legitime Kunden wie "stefanhacker@gmx.de" nicht als Pentest-Daten durchgehen. Default: nur warnen + Records auflisten. Opt-In via CLEANUP_PURGE_PENTEST=true löscht die markierten Customer/User. Live-verifiziert: - stefanhacker@gmx.de (echt) → durchgelassen - hacker@evil.de (Pentest) → erkannt + Warnung - Mit Purge-Env → gelöscht 18.4 Klartext-Portal-PW-Abruf: Bewusst drin gelassen (Admin-UI-Komfort). Endpoint ist mit customers:update-Permission gated + Audit-Log (READ → PortalPassword) – kein Bypass-Risiko, nur explizite Audit-Pflicht. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>