CSP teilt dem Browser mit, von wo er Skripte, Styles und Bilder laden darf. Ein korrekt konfigurierter CSP stoppt die meisten XSS-Angriffe.
Grundlegender CSP¶
Content-Security-Policy: default-src ‘self’; script-src ‘self’ ‘nonce-abc123’; style-src ‘self’ ‘unsafe-inline’; img-src ‘self’ data: https:; connect-src ‘self’ https://api.example.com; frame-ancestors ‘none’;
Nonce-basierter CSP¶
import secrets @app.after_request def add_csp(response): nonce = secrets.token_urlsafe(32) response.headers[‘Content-Security-Policy’] = f”script-src ‘self’ ‘nonce-{nonce}’” return response
Schrittweise Einfuehrung¶
- Report-Only mit permissiver Policy
- Berichte analysieren
- Policy verschaerfen
- Auf Enforcement umschalten
- Berichte ueberwachen
Wichtigste Erkenntnis¶
CSP ist die wirksamste Verteidigung gegen XSS. Beginnen Sie mit Report-Only, dann schrittweise verschaerfen.