Cross-Origin-Embedder-Policy (COEP) ist ein HTTP-Response-Header, der festlegt, welche fremdherkunftsübergreifenden Ressourcen (Cross-Origin-Ressourcen) eine Website einbetten darf. Zusammen mit der Cross-Origin-Opener-Policy (COOP) macht er ein Dokument cross-origin isolated und schützt so vor Seitenkanal-Angriffen wie Spectre.

Die drei Werte

  • unsafe-none — Standardzustand, keine Einschränkung für eingebettete Ressourcen.
  • require-corp — Jede Cross-Origin-Subressource muss ausdrücklich zustimmen: über einen Cross-Origin-Resource-Policy-Header (CORP) oder eine CORS-Freigabe. Sonst blockiert der Browser das Laden.
  • credentialless — Cross-Origin-Anfragen werden ohne Cookies und andere Berechtigungsnachweise gesendet. Dadurch gelten Ressourcen als sicher, ohne dass jeder Server einen CORP-Header setzen muss; moderne Browser unterstützen diesen Wert.

Cross-Origin Isolation

Setzt eine Seite Cross-Origin-Opener-Policy: same-origin und COEP auf require-corp oder credentialless, gilt das Dokument als cross-origin isolated. Das lässt sich im JavaScript über window.crossOriginIsolated prüfen. Im isolierten Zustand stehen leistungsfähige APIs zur Verfügung:

  • SharedArrayBuffer — gemeinsame Speicherbereiche zwischen Threads (Grundlage vieler WebAssembly-Anwendungen),
  • präzisere performance.now()-Zeitmessung ohne Timer-Drosselung,
  • Speicher-Analyse über performance.measureUserAgentSpecificMemory().

Die Isolation ist nur in einem sicheren Kontext über HTTPS möglich und verhindert, dass ein Angreifer über eingebettete fremde Ressourcen Ladezeiten oder Speicherzustände vermisst — die Messbasis für Spectre-artige Seitenkanal-Angriffe.

Fehlerdiagnose

Werden Ressourcen blockiert, liefern die Entwicklerwerkzeuge des Browsers eine Meldung mit dem fehlenden CORP-Header. COEP-Verstöße lassen sich außerdem über die Reporting API an einen eigenen Endpunkt melden.

Verwandte Grundlagen: Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy, CORS, Same-Origin-Policy, Content-Security-Policy.