SECURITY-HARDENING.md:
- Runde 11 "Externer Pentest-Folge: Header-Hygiene + Klartext-Audit":
HSTS-Doppel-Header weg, Cache-Control je nach Pfad differenziert,
CSP No-Fallback-Direktiven + frame-ancestors auf 'self', BREACH-
Mitigation via gzip off im Reverse-Proxy für /api/*, Server-/
X-Served-By-Banner entfernt, Audit-Log für die 6 Klartext-Passwort-
Read-Endpoints (CRITICAL).
- Runde 12 "JWT raus aus localStorage": Branchenstandard-Refresh-Cookie-
Pattern für die SPA. Access-Token (15 min) nur in JS-Memory,
Refresh-Token (7d) im httpOnly-Cookie. Auth-Middleware verweigert
Refresh-Tokens als Bearer (type-Claim). Axios-Interceptor mit
Single-Flight-Refresh-Retry. Tabelle der Live-Tests.
README.md:
- Tech-Stack-Auth-Zeile beschreibt jetzt die Access/Refresh-Architektur
- .env-Beispiel: JWT_EXPIRES_IN=15m + neue JWT_REFRESH_EXPIRES_IN=7d
- Production-Deployment-Hinweis: Frontend und API müssen über dieselbe
Origin laufen (SameSite=Strict-Cookie), sonst funktioniert /auth/refresh
cross-site nicht und User wird alle 15 min ausgeloggt
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>