Auto-commit: 2026-05-22 14:42
This commit is contained in:
47
memory/gitea-specs/issue-41.md
Normal file
47
memory/gitea-specs/issue-41.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user