Know-How
Content Security Policy (CSP) — praktický průvodce
CSP říká prohlížeči, odkud smí načítat skripty, styly, obrázky. Správně nastavený CSP zastaví většinu XSS útoků.
Základní 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-based 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
Postupné nasazení
- Report-Only s permisivní politikou
- Analyzujte reporty
- Zpřísněte politiku
- Přepněte na enforcement
- Monitorujte reporty
Klíčový takeaway
CSP je nejúčinnější obrana proti XSS. Začněte s Report-Only, postupně zpřísňujte.