Vai al contenuto

Controlla le intestazioni di sicurezza

Scrivi un indirizzo. Escono le sei intestazioni che contano, ciascuna con quello che il suo valore ottiene davvero — e quelle che stanno lì senza fare niente si dicono.

Perché «esserci» non è un voto

Tutti gli altri verificatori danno il voto sulla presenza: l’intestazione c’è, verde. Ma un’intestazione può esserci e non fare assolutamente niente — max-age=0 è il modo documentato di spegnere l’HSTS, una politica in modalità Report-Only segnala e non blocca, e frame-ancestors fa sì che il browser ignori del tutto il tuo X-Frame-Options. Tutte e tre si leggono come fatte. Ed è peggio che se mancassero, perché un’intestazione che si vede è un’intestazione che si smette di controllare.

Quello che questo non ti dice

Se il tuo sito è sicuro. Queste intestazioni limitano quello che un attacco può fare una volta che qualcosa è già andato storto; contro il difetto che l’ha lasciato entrare non fanno niente. Un sei perfetto qui convive benissimo con un gestore di contenuti mai aggiornato.

Una foto, o il film intero

Questo è com’è il sito adesso. La sorveglianza lo guarda —il certificato, il DNS, la raggiungibilità— e ti avvisa il giorno in cui qualcosa cambia, che di solito è il giorno in cui qualcuno ha messo in campo una configurazione che non ha letto.

Vedi la sorveglianza →

Domande frequenti

Dice che la mia intestazione non fa niente. Ma io la vedo nella risposta.
La vediamo anche noi, ed è proprio il punto. Tre di queste stanno in giro di continuo, messe e inerti: l’HSTS con max-age=0 (che è l’ordine di dimenticarlo), una Content-Security-Policy mandata solo come Report-Only (segnala, non blocca) e un X-Frame-Options su un sito la cui politica porta anche frame-ancestors, a cui il browser dà retta. Il valore è nel rapporto; confrontalo con quello che credevi di aver messo.
Servono tutte e sei?
Cinque sono una riga di configurazione l’una e non c’è motivo di non metterle. La Content-Security-Policy è quella che costa lavoro vero, perché una stretta ti rompe gli script in linea finché non li sistemi — ed è anche l’unica che limita il danno di un XSS invece di sperare di evitarlo. Quella si mette prima in Report-Only, si leggono le segnalazioni e poi si accende.
Perché unsafe-inline è un problema se il resto è chiuso?
Perché è proprio quello che una CSP esiste per impedire. Con unsafe-inline in script-src, un tag script iniettato viene eseguito — e quello è l’attacco intero. Tutto il resto che la politica limita vale meno di quell’unico buco. L’uscita sono i nonce o gli hash, e strict-dynamic ti lascia tenere l’unsafe-inline come rete per i browser vecchi senza che conti contro di te.