Files
openclaw/memory/gitea-specs/issue-41.md
2026-05-22 14:42:55 +00:00

48 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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