HTTP Headers
Visualizza header di risposta e verifica policy di sicurezza.
-
HSTS is set with a long max-age — browsers will refuse plaintext HTTP for the next 6+ months.max-age=31536000; includeSubdomains; preload
-
CSP is set with reasonable defaults — script and style sources are restricted.default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net productionresultssa1.blob.core.windows.net productionresultssa2.blob.core.windows.net productionresultssa3.blob.core.windows.net productionresultssa4.blob.core.windows.net productionresultssa5.blob.core.windows.net productionresultssa6.blob.core.windows.net productionresultssa7.blob.core.windows.net productionresultssa8.blob.core.windows.net productionresultssa9.blob.core.windows.net productionresultssa10.blob.core.windows.net productionresultssa11.blob.core.windows.net productionresultssa12.blob.core.windows.net productionresultssa13.blob.core.windows.net productionresultssa14.blob.core.windows.net productionresultssa15.blob.core.windows.net productionresultssa16.blob.core.windows.net productionresultssa17.blob.core.windows.net productionresultssa18.blob.core.windows.net productionresultssa19.blob.core.windows.net github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com wss://production-copilot-host.webpubsub.azure.com edge.fullstory.com rs.fullstory.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com www.youtube-nocookie.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com user-images.githubusercontent.com private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com explore-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com images.ctfassets.net/8aevphvgewt8/; manifest-src 'self'; media-src github.com user-images.githubusercontent.com secured-user-images.githubusercontent.com private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com assets.ctfassets.net/8aevphvgewt8/ videos.ctfassets.net/8aevphvgewt8/; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
-
Clickjacking is blocked — page cannot be embedded in third-party iframes.deny
-
pass X-Content-Type-Options +10/10nosniff is set — browsers will not MIME-sniff non-script responses as JavaScript.nosniff
-
Referrer policy leaks parts of the URL cross-origin — switch to strict-origin-when-cross-origin.origin-when-cross-origin, strict-origin-when-cross-origin
-
No Permissions-Policy — third-party iframes can request sensitive features without restriction.
What does each field mean?
Field reference
Voto di sicurezza
Punteggio aggregato sugli header di sicurezza pesato per impatto: HSTS e CSP pesano di più. A+ richiede che tutti e cinque gli header siano impostati correttamente; F significa che nessuno è presente. Lo usi come prima indicazione rapida, poi approfondisca i risultati per singolo header.
Protocollo HTTP
HTTP/1.1 è il vecchio protocollo testuale. HTTP/2 multiplexa più stream su una singola connessione TCP (compressione degli header, server push). HTTP/3 viaggia su QUIC (UDP) — migliore su reti instabili o mobili. Un server moderno dovrebbe esporre almeno HTTP/2.
Latenza
Round-trip dal nostro server al target fino all'arrivo del primo byte di risposta. Non è un benchmark CDN — distanza geografica, handshake TLS e warm-up del server influiscono. Da usare come indicatore grezzo di freschezza, non come dato di performance reale.
Catena di redirect
Una catena lunga (3+ redirect) penalizza SEO e performance. Il pattern classico è <code>http://example.com → https://example.com → https://www.example.com</code>: due salti, accettabile. Oltre cinque è una configurazione errata.
Strict-Transport-Security (HSTS)
HSTS dice al browser "non collegarti più a me in HTTP in chiaro". <code>max-age=15768000</code> (6 mesi) è il minimo pratico; <code>includeSubDomains; preload</code> consente l'inclusione nella preload list globale. Una volta nel preload non si può uscire per ~12 mesi — prima sistemi tutto il resto.
Content-Security-Policy (CSP)
CSP autorizza da dove possono essere caricati script, stili, immagini e frame. <code>default-src 'self'</code> è una base ragionevole; <code>script-src</code> con nonce è la configurazione più robusta. Eviti <code>unsafe-inline</code> e <code>unsafe-eval</code> — annullano gran parte della protezione XSS di CSP. Usi report-uri / report-to per il monitoraggio.
X-Frame-Options
Imposti <code>DENY</code> per vietare qualsiasi framing, oppure <code>SAMEORIGIN</code> per consentire solo frame di origine identica. L'equivalente moderno è <code>frame-ancestors</code> in CSP (sintassi più ricca) — entrambe le scelte soddisfano il nostro audit.
Referrer-Policy
Determina cosa il browser invia nell'header <code>Referer</code>. <code>strict-origin-when-cross-origin</code> (default nei browser moderni) è una buona baseline: URL completo same-origin, solo origine cross-origin, niente in caso di downgrade. <code>no-referrer</code> rimuove tutto; <code>unsafe-url</code> fa trapelare l'URL completo in downgrade — da evitare.
Permissions-Policy
Successore di Feature-Policy. Permette di consentire / negare le API del browser per origine: <code>camera=(), microphone=(), geolocation=(self)</code>. È soprattutto defense-in-depth; applicato anche agli iframe, garantendo un comportamento più sicuro per i contenuti incorporati.
X-Content-Type-Options: nosniff
Senza questo header il browser può eseguire una risposta JSON come JavaScript se "sembra uno script". Impostare <code>X-Content-Type-Options: nosniff</code> obbliga a rispettare il Content-Type dichiarato. Header poco costoso, sempre sicuro da attivare — non c'è ragione valida per ometterlo.
Informazioni su questo strumento
HTTP Headers recupera il tuo URL con una vera richiesta HTTPS, cattura ogni header nella risposta (e ogni risposta intermedia lungo qualsiasi catena di redirect) ed esegue il risultato attraverso un audit di sicurezza che copre i moderni header di hardening: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options / CSP frame-ancestors, X-Content-Type-Options, Referrer-Policy e Permissions-Policy. Ogni header viene verificato per presenza, validità del valore e lacune rispetto alle best practice.
Oltre all'audit, elenchiamo ogni header testualmente così puoi confermare la policy di caching (Cache-Control, ETag, Vary), il tracciamento CDN (CF-Ray, X-Cache, X-Served-By), la compressione (Content-Encoding: br/gzip) e qualsiasi header personalizzato che il tuo stack emette. Il metodo HTTP (GET o HEAD), la versione HTTP negoziata (HTTP/1.1, HTTP/2, HTTP/3) e la versione TLS sono riportati nella barra della richiesta.
Quando usare questo strumento
- Hardening della sicurezza. Prima del go-live, conferma che HSTS, CSP e gli altri siano impostati con valori sicuri — baseline Mozilla Observatory come minimo.
- Debug della cache. Vedi esattamente quale
Cache-ControleVaryemette il tuo CMS o framework — causa comune di "la vecchia versione che resta in giro". - Audit della catena di redirect. Individua catene accidentali 302-poi-301, loop HTTP-verso-HTTPS-verso-host-diverso e canonicalizzazione mancante.
- Comportamento CDN. Conferma che Cloudflare/Fastly/CloudFront stia effettivamente memorizzando nella cache ciò che pensi leggendo
Age,X-Cachee gli header specifici della CDN.
Cosa copre il nostro audit di sicurezza
Per ognuno dei sei header di hardening riportiamo: presente o mancante, il valore effettivo e un breve verdetto ("buono", "da rafforzare", "vulnerabile"). HSTS senzaincludeSubDomains, CSP con unsafe-inline o Referrer-Policy lasciato al default vengono segnalati. Non ti diciamo mai la policy "perfetta" perché ogni sito è diverso — ma ti diciamo quali manopole sono ancora alle impostazioni di fabbrica.
Domande frequenti
Cos'è HSTS e perché è importante?
max-age ragionevole (tipicamente 31536000 = 1 anno), previene attacchi di SSL stripping nelle visite successive. Aggiungere includeSubDomains estende la protezione a ogni sottodominio — default forte per la maggior parte dei siti ma assicurati che tutti supportino davvero HTTPS prima.
Manca la mia CSP — quanto è pericoloso?
default-src 'self' blocca i payload XSS più comuni (script inline, caricamenti di script esterni) a costo quasi zero. Policy più strette che bandiscono completamente gli script inline richiedono refactoring ma offrono una protezione molto più forte.
Seguite i redirect?
Perché lo strumento mostra HTTP/2 anche se ho configurato HTTP/3?
Alt-Svc alla prima connessione. Il nostro checker usa HTTP/2 su TCP per default, che è ciò che la maggior parte dei client HTTP fa ancora oggi; se il tuo server pubblicizza HTTP/3 in Alt-Svc, vedrai quell'header nel risultato, ma la risposta stessa è ancora su HTTP/2. La presenza di Alt-Svc è la cosa giusta da cercare.