Settembre 2026
Un voto di sicurezza da A a F, con il dettaglio che lo accompagna
L’audit di agosto l’ha mostrato: una constatazione senza gerarchia non serve a nessuno. Il report ora restituisce un punteggio su cento, la sua lettera e, per ogni punto perso, la riga esatta da aggiungere sul server.
Perché un voto
Un elenco di sei intestazioni mancanti non dice quali contano. Il lettore se ne va con un inventario e nessun ordine di priorità, il che equivale a non dirgli nulla. Il voto parte da cento e sottrae. HSTS e Content-Security-Policy valgono diciotto punti ciascuna, perché sono le uniche due a chiudere un’intera classe di attacco: il ritorno al testo in chiaro per la prima, l’iniezione di contenuto per la seconda. X-Content-Type-Options e X-Frame-Options valgono otto, Referrer-Policy e Permissions-Policy sei. Queste rafforzano, non proteggono da sole.
Senza HTTPS, F, senza discussioni
Quando la pagina non è servita in HTTPS, il voto scende a F e il dettaglio non viene calcolato. Non è severità di facciata, è l’unica lettura onesta: tutto transita in chiaro, qualsiasi intermediario legge e modifica la pagina, e nessuna intestazione cambia le cose. Sommare punti di rafforzamento sopra una connessione aperta darebbe un voto lusinghiero e falso.
Cosa costa punti, oltre alle intestazioni
- Un certificato già scaduto toglie quaranta punti, un certificato che non corrisponde al nome del sito ne toglie trenta.
- Quindici giorni o meno alla scadenza: quindici punti. Trenta giorni o meno: solo cinque, perché un rinnovo automatico scatta in questa finestra, come aveva mostrato l’audit di agosto.
- Un solo cookie impostato senza Secure o senza HttpOnly: otto punti.
- Un’intestazione Server che mostra un numero di versione, o un X-Powered-By: quattro punti. Non è una falla, è un’indicazione offerta a chi cerca una versione vulnerabile.
- Niente SPF, niente DMARC: cinque punti ciascuno. Un dominio senza DMARC può essere usurpato via e-mail, anche se non riceve posta.
- Un nome di dominio che scade tra meno di trenta giorni: otto punti, e quindici se è già scaduto.
Nominare un’intestazione non basta
«Le manca Permissions-Policy» non dice nulla a chi non amministra un server. Se ne va senza sapere se deve preoccuparsi, né cosa chiedere al suo hosting. Ogni intestazione mancante viene quindi restituita con tre cose: cosa protegge, cosa ottiene un attaccante senza di essa e la riga da copiare così com’è. Per HSTS, questa riga è «Strict-Transport-Security: max-age=31536000; includeSubDomains». Sono i valori che la nostra API applica alle sue risposte, con un’eccezione: la politica dei contenuti di un’API che serve solo JSON è troppo rigida per un sito che carica immagini e script, quindi proponiamo un valore adatto a un sito.
Lo stesso voto, in continuo
L’audit pubblico e il monitoraggio continuo condividono un’unica funzione di calcolo. L’audit aggiunge ciò che misura in più — il certificato, il DNS del dominio —, il monitoraggio si limita alle intestazioni di ogni risposta. Conseguenza utile: il voto di un sito monitorato si ricalcola a ogni passaggio, e un peggioramento si vede. Una B che diventa una D è un rilascio che ha rimosso una politica dei contenuti. Nessuno glielo dirà, la pagina continua a comparire.
Cosa il voto non dice
Misura una presenza, non la finezza della configurazione. Una politica dei contenuti permissiva conta come presente, e un voto A non significa che un sito sia sicuro: significa che non ha dimenticato le protezioni che tutti dimenticano. L’audit non sostituisce una revisione applicativa, rileva ciò che manca e ciò che regredisce. È poco, è misurabile, ed è esattamente ciò che nessun team controlla spontaneamente.