Security

HTTP Headers

Visualizza header di risposta e verifica policy di sicurezza.

URL http or https (default https). Up to 3 redirects are followed.
https://www.cloudflare.com/
Status: 200 HTTP/1.1 831 ms
B
Security grade?
Score
87 / 100
Status
200
Protocol?
HTTP/1.1
Latency?
831 ms
Redirect chain?
  1. 301 — https://cloudflare.com/
  2. 200 — https://www.cloudflare.com/
Security audit
  • pass Strict-Transport-Security? +25/25
    HSTS is set with a long max-age — browsers will refuse plaintext HTTP for the next 6+ months.
    max-age=31536000; includeSubDomains
  • warn Content-Security-Policy? +12/25
    CSP allows both unsafe-inline and unsafe-eval — XSS protection is largely defeated.
    default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://static.cloudflareinsights.com https://static-staging.cloudflareinsights.com https://challenges.cloudflare.com https://*.onetrust.com https://cdn.cookielaw.org https://ot.www.cloudflare.com https://www.googletagmanager.com https://tagmanager.google.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://adservice.google.com https://cdn.bizible.com https://js.adsrvr.org https://*.marketo.net https://platform.twitter.com https://static.ads-twitter.com https://scripts.demandbase.com https://tag.demandbase.com https://*.6sc.co https://*.qualified.com https://snap.licdn.com https://bat.bing.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://*.analytics.google.com https://analytics.google.com https://*.doubleclick.net https://www.googleadservices.com https://translate.googleapis.com https://cdn.bizible.com https://js.adsrvr.org https://*.marketo.net https://ads-twitter.com https://analytics.twitter.com https://*.twimg.com https://api.demandbase.com https://scripts.demandbase.com https://tag.demandbase.com https://tag-logger.demandbase.com https://api.company-target.com https://*.6sc.co https://epsilon.6sense.com https://*.qualified.com wss://*.qualified.com https://*.ads.linkedin.com https://www.linkedin.com https://bat.bing.com https:; frame-src https://*.adsrvr.org https://*.cloudflare.com https://*.videodelivery.net https://*.cloudflarestream.com https://www.googletagmanager.com https://*.qualified.com https://td.doubleclick.net https://bid.g.doubleclick.net https://9309168.fls.doubleclick.net https://9973066.fls.doubleclick.net https://s.company-target.com; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; worker-src 'self' blob:; child-src 'self' blob:; upgrade-insecure-requests
  • pass X-Frame-Options / frame-ancestors? +15/15
    Clickjacking is blocked — page cannot be embedded in third-party iframes.
    SAMEORIGIN
  • pass X-Content-Type-Options +10/10
    nosniff is set — browsers will not MIME-sniff non-script responses as JavaScript.
    nosniff
  • pass Referrer-Policy? +15/15
    Referrer policy keeps full URLs from leaking to third-party origins.
    strict-origin-when-cross-origin
  • pass Permissions-Policy? +10/10
    Permissions policy restricts browser features (camera, mic, geolocation) for embeds.
    geolocation=(), camera=(), microphone=()
Response headers
date: Sun, 26 Jul 2026 18:57:03 GMT content-type: text/html; charset=utf-8 transfer-encoding: chunked connection: keep-alive link: <https://www.cloudflare.com/.well-known/agents.json>; rel="api-catalog", <https://www.cloudflare.com/.well-known/webmcp.json>; rel="service-desc", <https://www.cloudflare.com/openapi.json>; rel="service-desc", <https://www.cloudflare.com/llms.txt>; rel="service-doc", <https://www.cloudflare.com/sitemap.xml>; rel="sitemap", </fonts/Kunst%20Grotesk%20Regular.woff2>; rel=preload; as=font; type="font/woff2"; crossorigin, </fonts/Kunst%20Grotesk%20Medium.woff2>; rel=preload; as=font; type="font/woff2"; crossorigin, <https://ot.www.cloudflare.com>; rel=preconnect; crossorigin, <https://imagedelivery.net>; rel=preconnect; crossorigin, </static/hero-poster.avif>; rel=preload; as=image; type="image/avif"; fetchpriority=high cache-control: public, max-age=10, s-maxage=10 strict-transport-security: max-age=31536000; includeSubDomains cf-placement: remote-MXP content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://static.cloudflareinsights.com https://static-staging.cloudflareinsights.com https://challenges.cloudflare.com https://*.onetrust.com https://cdn.cookielaw.org https://ot.www.cloudflare.com https://www.googletagmanager.com https://tagmanager.google.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://adservice.google.com https://cdn.bizible.com https://js.adsrvr.org https://*.marketo.net https://platform.twitter.com https://static.ads-twitter.com https://scripts.demandbase.com https://tag.demandbase.com https://*.6sc.co https://*.qualified.com https://snap.licdn.com https://bat.bing.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://*.analytics.google.com https://analytics.google.com https://*.doubleclick.net https://www.googleadservices.com https://translate.googleapis.com https://cdn.bizible.com https://js.adsrvr.org https://*.marketo.net https://ads-twitter.com https://analytics.twitter.com https://*.twimg.com https://api.demandbase.com https://scripts.demandbase.com https://tag.demandbase.com https://tag-logger.demandbase.com https://api.company-target.com https://*.6sc.co https://epsilon.6sense.com https://*.qualified.com wss://*.qualified.com https://*.ads.linkedin.com https://www.linkedin.com https://bat.bing.com https:; frame-src https://*.adsrvr.org https://*.cloudflare.com https://*.videodelivery.net https://*.cloudflarestream.com https://www.googletagmanager.com https://*.qualified.com https://td.doubleclick.net https://bid.g.doubleclick.net https://9309168.fls.doubleclick.net https://9973066.fls.doubleclick.net https://s.company-target.com; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; worker-src 'self' blob:; child-src 'self' blob:; upgrade-insecure-requests cross-origin-opener-policy: unsafe-none cross-origin-resource-policy: cross-origin permissions-policy: geolocation=(), camera=(), microphone=() referrer-policy: strict-origin-when-cross-origin x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-served-by: marketing-site x-xss-protection: 1; mode=block x-rm: GW vary: accept-encoding set-cookie: __cf_bm=Y9sU2qIraSYUYaiH0xmTGat3v1qavYiORbLR1RXnsLI-1785092222.757239-1.0.1.1-SXzDKMpFl5QYqGMqBKBa5GEspsbZCI9z8g41dIXBaAsUsP27Kshq.oURLL9wPg9hQVYapbpMPL5dO3MYgaCH.DgvYthHaeUBm2JptOhWjiIUqWZ6xVLS7yYfWMshZZHEIDEanq6YwnuQgNyTLVVTgA; HttpOnly; SameSite=None; Secure; Path=/; Domain=www.cloudflare.com; Expires=Sun, 26 Jul 2026 19:27:02 GMT report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=eZqGEpllhtskG%2FATPFYxeRXBAR7P0KNrLv753sVVawLjm2B94D8Zueq8891SXEai%2FQMBx%2FMCHxi8NDdheIrGQ77WgeJlz2W1U%2BufMl%2Byezlxjk4q%2BNzlyp285XorfTd03AYN8g%3D%3D"}]} nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800} server: cloudflare cf-ray: a215a0b83d07368c-FRA alt-svc: h3=":443"; ma=86400
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-Control e Vary emette 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-Cache e 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 senza includeSubDomains, 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?

Strict-Transport-Security dice al browser "usa sempre HTTPS per questo dominio, anche se l'utente ha digitato http:// o ha cliccato un link http://". Una volta impostato con un 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?

Senza CSP, qualsiasi falla XSS nel tuo sito viene eseguita con piena potenza: può esfiltrare cookie, caricare script controllati dall'attaccante o riscrivere il DOM. Una CSP iniziale di 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?

Sì — fino a cinque hop. Ogni passo è mostrato con il suo metodo, status, location e header così puoi individuare hop a protocollo misto (HTTP→HTTPS), canonicalizzazione mancante (apex vs www) o loop accidentali. La maggior parte dei siti in produzione dovrebbe reindirizzare al massimo una volta (HTTP → HTTPS), poi servire i contenuti; più di due hop è di solito un segno di regole di rewrite sovrapposte.

Perché lo strumento mostra HTTP/2 anche se ho configurato HTTP/3?

HTTP/3 (QUIC su UDP) richiede che il client opti tramite l'header 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.