1. Cos’è la Content Security Policy (CSP)?
La Content Security Policy (CSP) è un header di risposta HTTP standardizzato dal W3C che consente di definire le origini approvate per il caricamento e l’esecuzione di risorse nel browser.
Limitando l’origine di script, fogli di stile e connessioni, la CSP rappresenta la difesa più efficace contro attacchi Cross-Site Scripting (XSS) ed esfiltrazione di dati.
2. Panoramica delle Direttive Principali
| DIRETTIVA | CONTROLLA | VALORE SICURO DI DEFAULT |
|---|---|---|
| default-src | Fallback per tutte le direttive di caricamento non specificate | 'self' |
| script-src | Sorgenti autorizzate per l’esecuzione JavaScript | 'self' 'nonce-...' |
| style-src | Origini consentite per CSS e stili inline | 'self' 'unsafe-inline' |
| connect-src | Destinazioni permesse per Fetch, XHR e WebSocket | 'self' https://api.domain.com |
| frame-ancestors | Domini autorizzati a incorporare la pagina in un <iframe> | 'none' |
3. Politiche Basate su Nonce vs Hash
Le policy storiche basate su whitelist di domini sono risultate vulnerabili a bypass tramite CDN. Gli standard moderni esigono un controllo basato su nonce.
La Strict CSP (Livello 3) supera questo limite introducendo nonce crittografici per singola richiesta:
4. Frame Ancestors vs X-Frame-Options
Mentre X-Frame-Options: DENY è ancora supportato per retrocompatibilità, la direttiva frame-ancestors della CSP è lo standard moderno per difendersi dal clickjacking.