Header di sicurezza: la prima linea di difesa del browser
Gli header di sicurezza HTTP sono istruzioni che il server web invia al browser insieme alla risposta, indicando come comportarsi per proteggere l'utente. Senza questi header, il browser applica solo le sue policy di default, che spesso non sono sufficienti per prevenire attacchi come XSS (Cross-Site Scripting), clickjacking, sniffing del content-type e downgrade HTTPS. Configurare gli header corretti è una delle misure di sicurezza più efficaci e meno invasive che puoi implementare.
Il nostro Security Headers analyzer verifica la presenza e la corretta configurazione di ogni header di sicurezza, assegnando un punteggio e fornendo raccomandazioni specifiche. Ma a differenza di un semplice check presente/assente, analizza anche i valori: un CSP troppo permissivo (unsafe-inline, unsafe-eval) è quasi peggio di non averlo, perché crea un falso senso di sicurezza.
Gli header essenziali
CSP (Content-Security-Policy) è il più potente: definisce quali risorse il browser può caricare e da dove. Previene efficacemente gli attacchi XSS impedendo l'esecuzione di script non autorizzati. HSTS (Strict-Transport-Security) forza il browser a usare sempre HTTPS, anche se l'utente digita http://. Il parametro preload permette di inserire il dominio nella lista HSTS preloaded dei browser, garantendo HTTPS fin dalla prima visita.
Implementazione pratica
L'implementazione avviene a livello di web server. Su Nginx aggiungi add_header nelle direttive server o location. Su Apache usa Header set nel file .htaccess o nella configurazione del virtualhost. Se usi un CDN (Cloudflare, AWS CloudFront), puoi configurare gli header direttamente nel CDN. Verifica sempre il risultato con il nostro Security Headers check dopo ogni modifica, e testa il sito per assicurarti che CSP non blocchi risorse legittime.
Combina il controllo degli header con SSL Check per verificare il certificato SSL e HTTP Headers per un'analisi completa di tutti gli header della risposta (non solo quelli di sicurezza). Un sito con HTTPS perfetto ma senza header di sicurezza è vulnerabile ad attacchi che HTTPS non previene (XSS, clickjacking). Viceversa, header di sicurezza senza HTTPS hanno efficacia limitata. La sicurezza web richiede entrambi.
L'approccio consigliato è incrementale: inizia con gli header più semplici (X-Content-Type-Options, X-Frame-Options), poi aggiungi HSTS e Referrer-Policy, e infine implementa CSP partendo da una policy permissiva e restringendola gradualmente monitorando le violazioni con il parametro report-uri. Un CSP troppo restrittivo lanciato senza test può rompere funzionalità del sito, quindi testa sempre in modalità report-only prima di applicare.