Ontwikkelaars die COEP gebruiken, kunnen nu iframes van derden insluiten die zelf geen COEP gebruiken.
Waarom we COEP nodig hebben
Sommige web-API's vergroten het risico op zijkanaalaanvallen zoals Spectre . Om dat risico te beperken, bieden browsers een op opt-in gebaseerde geïsoleerde omgeving, genaamd cross-origin isolation , die onder andere de inzet van COEP vereist. Hierdoor kunnen websites bevoorrechte functies gebruiken, waaronder SharedArrayBuffer
, performance.measureUserAgentSpecificMemory()
en uiterst nauwkeurige timers met een betere resolutie .
Om cross-origin-isolatie mogelijk te maken, moeten websites de volgende twee HTTP-headers verzenden:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Uitdagingen bij het inschakelen van COEP
Hoewel cross-origin-isolatie webpagina's een betere beveiliging biedt en de mogelijkheid biedt om krachtige functies in te schakelen, kan het implementeren van COEP moeilijk zijn. Een van de grootste uitdagingen is dat alle cross-origin iframes ook COEP en CORP moeten inzetten. Iframes zonder die headers worden niet door de browser geladen.
De iframes worden doorgaans bediend door een derde partij voor wie het misschien niet eenvoudig is om COEP in te zetten.
Anoniem iframe schiet te hulp
Dat is waar anoniem iframe in beeld komt. Door het anonymous
attribuut aan het <iframe>
-element toe te voegen, wordt het iframe geladen vanaf een andere, kortstondige opslagpartitie en is het niet meer onderworpen aan COEP-beperkingen.
Voorbeeld:
<iframe anonymous src="https://example.com">
Iframe is gemaakt in een nieuwe kortstondige context en heeft geen toegang tot de cookies die zijn gekoppeld aan de website op het hoogste niveau. Het begint met een lege koektrommel. Op dezelfde manier laden en bewaren opslag-API's zoals LocalStorage
, CacheStorage
, IndexedDB
, enzovoort, gegevens in de nieuwe kortstondige partitie. De partitie is beperkt tot het huidige document op het hoogste niveau en de oorsprong van het iframe. De opslag wordt gewist zodra het document op het hoogste niveau is verwijderd.
Anonieme iframes vallen niet onder de COEP-inbeddingsregels. Dit is nog steeds veilig, omdat ze elke keer vanuit een nieuwe lege context worden geladen. Ze worden geladen zonder dat hun gegevens worden gepersonaliseerd. Ze bevatten alleen openbare gegevens, die niet waardevol zijn voor een aanvaller.
Demo
Je kunt een anoniem iframe bekijken op: https://anonymous-iframe.glitch.me/
Meld u aan voor een origin-proefperiode
Om ervoor te zorgen dat Anonieme iframes ontwikkelaars helpen cross-origin-isolatie toe te passen, stellen we ze vanaf versie 106 tot 108 beschikbaar in Chrome als origin-proefversie.
Registreer u voor de origin-proefversie om ervoor te zorgen dat uw website anonieme iframes kan gebruiken:
- Vraag een token aan voor uw herkomst.
- Gebruik het token op een van de volgende manieren:
- In je HTML:
html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
- In uw Javascript:
js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
- In de HTTP-headers:
text Origin-Trial: TOKEN_GOES_HERE
- In je HTML:
- Voeg een anoniem iframe toe aan uw pagina:
html <iframe anonymous src="https://example.com">
Als je feedback hebt over deze functie, dien dan een probleem in de GitHub-repository in.
Oorsprongsproces door derden
De Origin-proefversie is ook beschikbaar voor scripts van derden. Het betekent dat het kan worden ingeschakeld door scripts die op de pagina zijn ingebed.
Lees meer over hoe u zich kunt registreren voor een proefversie van derden .
Veelgestelde vragen
Zal deze functie door andere browsers worden overgenomen?
- Mozilla Verzoek om positie: in behandeling
- Webkit Positieverzoek: Geen signaal
- W3C TAG Verzoek om positie: tevreden
Zijn iframes genest in <iframe anonymous>
anoniem?
Ja. Het is geërfd. Zodra een iframe anoniem is, geldt dat voor alle iframes in de hele subboom, zelfs zonder een anonymous
attribuut.
Zijn pop-ups gemaakt van <iframe anonymous>
ook anoniem?
Pop-ups worden geopend alsof er noopener
is ingesteld. Ze worden gemaakt vanuit een nieuwe reguliere top-levelcontext en zijn niet anoniem. Ze kunnen niet communiceren met het anonieme iframe.
Bronnen
- Maak uw website ‘cross-origin geïsoleerd’ met behulp van COOP en COEP
- Waarom je ‘cross-origin geïsoleerd’ nodig hebt voor krachtige functies
- Een gids om cross-origin isolatie mogelijk te maken
- SharedArrayBuffer-updates in Android Chrome 88 en Desktop Chrome 92
- Laad cross-originebronnen zonder CORP-headers met behulp van
COEP: credentialless