# Issue #41 – CSP Header implementieren ## Komplexität: S (Small) - Header-Zeile in index.php oder .htaccess hinzufügen - Geschätzter Aufwand: < 30 Min ## Analyse Statische Landingpage, keine dynamischen Scripte von Drittanbietern. CSP kann sehr restriktiv sein. ### Externe Ressourcen - Google Maps iframe: `frame-src https://www.google.com/maps/` - Lokale Fonts: `/fonts/` → `'self'` - Lokale CSS: `/css/` → `'self'` - Lokale JS: `/js/haus-schleusingen.js` → `'self'` - Bilder: `'self' data:` (fuer inline-Bilder) - `unsafe-inline` fuer Styles vermeiden → pruefen ob noetig ### Architektur-Entscheidung CSP Header in `public/.htaccess` setzen (nicht in PHP), da: - Zentraler Ort, einfach wartbar - Kein PHP-Code noetig - Apache-spezifisch, aber das ist die Produktionsumgebung ### CSP-Richtlinie ``` Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; frame-src https://www.google.com/ https://www.google.de/; connect-src 'self' ``` Hinweis: `unsafe-inline` fuer styles vorerst beibehalten, da inline-styles in Views verwendet werden (z.B. hero-bg `style="background-image:..."`). Spaeter durch Nonce/Hash ersetzen. ### Akzeptanzkriterien - [ ] CSP-Header wird in jeder Response gesendet - [ ] Alle Ressourcen (CSS, JS, Fonts, Bilder) laden korrekt - [ ] Google Maps iframe funktioniert - [ ] Keine CSP-Verletzungen im Browser-Console ### Abhängigkeiten Keine. Unabhaengig von anderen Issues. ### Edge Cases - `data:` URIs fuer Bilder -> `img-src 'self' data:` - Google Maps iframe kann auch `www.google.de` nutzen - `unsafe-inline` styles: View-Templates nutzen `style="..."` Attribute ### Sicherheitsrisiken - `unsafe-inline` fuer styles: Minimales Risiko, aber acceptable fuer Landingpage - Keine `unsafe-eval` oder `unsafe-inline` fuer scripts