Sec-Fetch-Site è un header di richiesta. Il browser dice se la chiamata è same-origin, same-site, cross-site o none. Non è CORS. Non è il banner cookie.
Il banner cookie non scrive l’header Sec-Fetch-Site. È un header di richiesta: il browser lo mette da solo, con il prefisso Sec-. Dice al server se la chiamata arriva dalla stessa origine, dallo stesso sito, da un altro sito, o da un’azione dell’utente (barra degli indirizzi, segnalibro). MDN: non si modifica da JavaScript. Non è CORS. Non è il consenso al marketing.
In breve: fetch metadata request header, solo verso URL potenzialmente fidati (HTTPS). Quattro token: cross-site, same-origin, same-site, none. Header proibito: il prefisso Sec- lo rende non impostabile dagli script. Le richieste non accettate, scrive MDN, andrebbero rifiutate con 403. Verifica del 29 settembre 2026 su MDN (header, ultima modifica 28 settembre 2026).
Cosa trovi in questo articolo
Cosa è Sec-Fetch-Site (e cosa non è CORS)
MDN, sulla pagina dell’header Sec-Fetch-Site, parte da un fatto: indica la relazione tra l’origine di chi inizia la richiesta e l’origine della risorsa chiesta. In altre parole, dice al server se la chiamata è same-origin, same-site, cross-site, o «iniziata dall’utente». Il server può usarlo per decidere se accettarla. Le richieste same-origin, scrive MDN, di solito si accettano di default; per le altre conta anche che risorsa sia e che cosa dicono gli altri header di fetch metadata. Di default, quelle non accettate andrebbero rifiutate con 403.
Non è CORS. CORS, Access-Control-Allow-Origin, è un header di risposta: decide chi può leggere il body in modalità cors. Sec-Fetch-Site è un header di richiesta: lo scrive il browser, prima. Non è CORP. Non è COEP. Non è COOP. Non è il banner cookie. Cinque mestieri, un popup.
MDN, glossario fetch metadata request header: questi header (prefisso Sec-) sono forbidden request header. Non si modificano da JavaScript. Servono a una policy di isolamento delle risorse: i siti esterni chiedono solo ciò che è pensato per essere condiviso. MDN elenca CSRF, XSSI, timing e leak cross-origin tra i problemi che questa famiglia aiuta a mitigare. Si verifica in Network, sulla richiesta, non sul testo della privacy policy. Questo pezzo sta nel cluster Sicurezza, accanto a CORS e a CORP.
I quattro token
MDN, sintassi. Header di richiesta. Un token tra quattro. Incluso solo nelle richieste verso URL potenzialmente fidati. Non è CORS-safelisted.
| Token (MDN) | Cosa significa, secondo MDN |
|---|---|
cross-site | chi inizia e chi ospita la risorsa hanno un sito diverso (esempio MDN: potentially-evil.com chiede example.com) |
same-origin | stessa origine: stesso schema, host e porta |
same-site | stesso sito, schema compreso |
none | operazione originata dall’utente: URL in barra, segnalibro, drag-and-drop di un file nella finestra |
Esempio MDN. Una fetch a https://mysite.example/foo.json da una pagina sullo stesso host e porta: il browser manda Sec-Fetch-Site: same-origin (insieme a Sec-Fetch-Dest: empty e Sec-Fetch-Mode: cors). La stessa URL chiesta da un altro sito: Sec-Fetch-Site: cross-site. Il server sceglie se accettare o rifiutare. Lo spec è Fetch Metadata Request Headers. Lo mette il browser. Il banner non lo scrive.
Mode, Dest, 403: non il banner
MDN, stessa famiglia. Sec-Fetch-Mode dice la modalità della richiesta: per esempio navigate per una navigazione di primo livello, no-cors per un’immagine. Sec-Fetch-Dest dice la destinazione: image, script, empty per fetch() e XMLHttpRequest. Un <img> cross-site, esempio MDN: Sec-Fetch-Dest: image, Sec-Fetch-Mode: no-cors, Sec-Fetch-Site: cross-site. Tre header, una richiesta. Non è CSP. Non è HSTS. Non è Clear-Site-Data.
MDN, baseline: supporto ampio, disponibile nei browser da marzo 2023. Data di modifica della pagina Sec-Fetch-Site: 28 settembre 2026. Rilettura: 29 settembre 2026. Si verifica in Network, sugli header della richiesta, non sul testo «Accetta tutti».
Errori da evitare
Impostare
Sec-Fetch-Siteda JavaScript o in un tagmeta: MDN, forbidden request header.Confonderlo con CORS, CORP, COEP, COOP o con il banner cookie.
Trattare
same-sitecomesame-origin: MDN, origini diverse possono stare sullo stesso sito.Ignorare
none: è la barra degli indirizzi, non una fetch da pagina.Verificare l’effetto sulla privacy policy invece che in Network, sulla richiesta.
Accettare in silenzio un
cross-sitesu un endpoint di cambio stato (logout, bonifico, cambio mail) e chiamarlo «CORS sistemato».
In sintesi
Sec-Fetch-Site è un header di richiesta, in HTTPS, scritto dal browser. Quattro token: cross-site, same-origin, same-site, none. Non si imposta da JavaScript. Non è CORS. Non è il banner. Si verifica in Network. MDN, 29 settembre 2026.