Erweiterungsideen: Security Audit (Audit 2026-02-18)
Nicht umgesetzte Erweiterungsideen aus dem Security Audit.
| Item | Beschreibung | Priorität |
|---|---|---|
script-src, style-src, img-src, connect-src, worker-src, media-src, frame-src, font-src. | ✅ Erledigt | |
| Session Secure Cookie Default | config/session.php hat env('SESSION_SECURE_COOKIE') ohne Fallback. Empfehlung: env('SESSION_SECURE_COOKIE', true) als Default. | Mittel |
| Rate Limiting: Registrierung | Kein dediziertes RateLimiter::for('register', ...) definiert. Turnstile schützt teilweise, aber bei Fail-Open nicht zuverlässig. Empfehlung: 5/Stunde pro IP. | Mittel |
| Rate Limiting: Password-Reset | Kein Limiter für password.email. Nur Laravels Standard 60/Min-Throttle. Empfehlung: 3/Minute pro E-Mail. | Mittel |
| HTML Purifier für CMS-Content | {!! $page->content !!} rendert Admin-CMS-Inhalte unescaped. Akzeptabel da nur Admins editieren. Optional: HTML Purifier für Stored-XSS-Schutz bei kompromittierten Admin-Accounts. | Niedrig |
| Gemini API-Key als Header | API-Key wird als URL-Parameter ?key=$apiKey übergeben und landet in Server-Logs. Prüfen ob Gemini API Header-Auth unterstützt. | Niedrig |
Announcement Model $guarded = [] | Explizite $fillable definieren statt $guarded = []. Model wird nur intern erstellt, aber schlechte Praxis. | Niedrig |
Location: app/Http/Middleware/SecurityHeaders.php, config/session.php, config/fortify.php