Volevo sapere quanto bene i siti più noti usano davvero gli header di sicurezza, così ho puntato il mio controllo header gratuito su 57 di loro: aziende tech, social, shop, banche e servizi di pagamento, testate, provider di hosting e telefonia, siti istituzionali. Il risultato completo è una heatmap ordinabile nella classifica header. Ecco cosa emerge.
I numeri
- HSTS: 48 su 57 lo inviano con durata di almeno sei mesi. È un problema in gran parte risolto.
- Protezione dai frame (X-Frame-Options o frame-ancestors): 49 su 57.
- X-Content-Type-Options: nosniff: 44 su 57.
- Content-Security-Policy senza
'unsafe-inline'in script-src: solo 21 su 57. Il 63 % non ha una CSP efficace. - Referrer-Policy: 14. Permissions-Policy: 15. Cross-Origin-Opener-Policy: 12.
La mediana è 60 su 100, cioè un C. Quattro siti arrivano ad A: gov.uk (95) e facebook.com, instagram.com e whatsapp.com (90 ciascuno).
Perché la CSP è il buco
Gli altri header sono interruttori da una riga. Una Content-Security-Policy richiede di conoscere ogni punto da cui le pagine caricano script, e una policy severa rompe i siti che dipendono da script inline e tag di terzi. Per questo è l'header che manca più spesso, anche se è quello che fa di più contro il cross-site scripting. Per cominciare senza rischi c'è la modalità report-only. Il set base per nginx mostra come.
Come leggerla in modo corretto
- È un'istantanea della pagina iniziale. Gli header possono cambiare per percorso, regione o client.
- Si valutano solo otto header. Un voto basso significa che questi header qui non sono impostati, non che il servizio sia insicuro.
- I grandi fornitori spesso proteggono separatamente i domini di accesso e le API, che non sono in questo elenco.
- Il punteggio è lo stesso del controllo gratuito: CSP 25, HSTS 20, protezione dai frame 15, nosniff, Referrer-Policy e Permissions-Policy 10 ciascuno, COOP e «nessuna versione esposta» 5 ciascuno.
Cosa farne
Controlla il tuo sito in dieci secondi con il controllo header, sistema prima i punti economici (HSTS, nosniff, Referrer-Policy, Permissions-Policy) e pianifica la CSP come un piccolo progetto, prima in report-only. Rifai il test dopo ogni modifica a proxy, pannello o CDN, perché ogni livello può aggiungere o togliere header.
La classifica viene rimisurata ogni tanto. Se pensi che un sito sia valutato male, scrivimi quale e perché, e lo guardo.