Cross-Origin-Embedder-Policy è un header di risposta. Dice se il documento può caricare risorse no-cors. require-corp chiede CORP. Non è CORS. Non è COOP. Il banner cookie non lo imposta.
Il banner cookie non scrive l’header Cross-Origin-Embedder-Policy. COEP è un header di risposta con cui il documento decide se può caricare risorse cross-origin richieste in modalità no-cors. MDN: senza permesso esplicito, require-corp le blocca. Non è CORS. Non è COOP. Non è il consenso al marketing.
In breve: header di risposta. Tre token: unsafe-none (default), require-corp, credentialless. Per l’isolamento cross-origin servono COEP require-corp (o credentialless) e COOP same-origin. Non è Access-Control-Allow-Origin. Verifica del 26 settembre 2026 su MDN (ultima modifica 4 settembre 2026).
Cosa trovi in questo articolo
Cosa è COEP (e cosa non è CORS)
MDN, sulla pagina dell’header Cross-Origin-Embedder-Policy, parte da un fatto: il documento può imporre una policy sul caricamento delle risorse cross-origin richieste in no-cors. Senza CORP né CORS, il default del web è caricare. Con COEP require-corp, quella risorsa deve dichiarare di voler essere embedded, oppure va chiesta in cors. Vale anche per gli <iframe> e i frame nidificati.
Non è CORS. CORS decide chi può leggere una risposta in modalità cors. COEP decide se una risorsa no-cors può entrare nel documento. Non è COOP: quello isola il browsing context group. Non è CORP, Cross-Origin-Resource-Policy: quello lo mette la risorsa, non il documento che la incorpora. Non è X-Frame-Options. Non è il cookie SameSite. Cinque mestieri, un popup.
Questo pezzo sta nel cluster Sicurezza, accanto a COOP e a CORS. HSTS forza HTTPS. COEP forza il consenso all’embed. Due piani, due header.
I tre token
MDN, stessa pagina. Header di risposta. Un solo token, più un report-to opzionale. Due header, o più token, equivalgono a unsafe-none.
| Token | Cosa fa, secondo MDN |
|---|---|
unsafe-none | default: il documento carica risorse no-cors anche senza CORP |
require-corp | in no-cors carica solo same-origin, o risorse con CORP che consente l’embed; in cors decide CORS, non COEP |
credentialless | in no-cors carica senza credenziali (niente cookie in richiesta, ignorati in risposta); il resto come require-corp |
Sintassi, una riga: Cross-Origin-Embedder-Policy: require-corp.
MDN, esempio. Un <img src="https://another-example.com/some-image.png"> senza crossorigin parte in no-cors. Con COEP require-corp l’immagine deve rispondere Cross-Origin-Resource-Policy: cross-origin, altrimenti è una violazione. Per una risorsa che parla CORS si mette crossorigin sull’elemento, o { mode: "cors" } in fetch: COEP non la blocca, CORS sì o no. Le violazioni si osservano con la Reporting API e, se c’è, con report-to su un endpoint dichiarato in Reporting-Endpoints.
Isolamento, COOP, non il banner
MDN: è un header di risposta. Si mette sulla risposta HTTP del documento. Si verifica in Network, sulla risposta del documento, non sul lucchetto della home, non sul testo del banner.
Alcune API, scrive MDN, restano spente senza isolamento cross-origin: SharedArrayBuffer, timer non throttlati di Performance.now(). Per ottenerlo servono COEP require-corp (o credentialless) e Cross-Origin-Opener-Policy same-origin. In più, Permissions-Policy: cross-origin-isolated non deve bloccare la feature. Si controlla con window.crossOriginIsolated. COEP non è COOP. CORP è un terzo header. Tre sigle, tre mestieri.
MDN precisa anche il limite: COEP non scavalca CORP. Se la risorsa dice same-origin, un documento cross-origin non la carica, qualunque sia il token COEP. HSTS non decide gli embed. Permissions-Policy spegne camera e geolocalizzazione, non CORP. CSP è un altro elenco. nosniff ferma lo sniffing del MIME.
Errori da evitare
Mettere COOP
same-origine dimenticare COEP: MDN, senza entrambi non c’è isolamento cross-origin.Accendere
require-corpe lasciare i CDN, i font e i pixel inno-corssenza CORP: la pagina si spezza, non «si isola in silenzio».Confondere COEP con CORS, CORP, COOP o X-Frame-Options: quattro header, quattro mestieri, più CORS.
Trattare il banner cookie come COEP: il consenso non scrive l’header.
Mettere due volte l’header, o due token, e credere di aver stretto la policy: MDN, è
unsafe-none.Verificare l’header sul testo della privacy policy invece che in Network.
In sintesi
Cross-Origin-Embedder-Policy è un header di risposta. Il default è unsafe-none. Per isolare il documento si usa require-corp o credentialless, con COOP same-origin accanto. Non è CORS. Non è COOP. Non è il banner cookie. Si verifica in Network. MDN, 26 settembre 2026.