Cross-Origin-Opener-Policy (COOP) ist ein HTTP-Response-Header, der steuert, wie sich ein Fenster über die Opener-Beziehung (window.opener) zu anderen Fenstern verhält. Er isoliert Dokumente verschiedener Origins voneinander.
Das Problem: window.opener
Öffnet eine Seite ein Popup oder einen externen Link mit target="_blank", behält das neue Fenster eine Referenz auf das öffnende Fenster. Eine bösartige Zielseite kann darüber window.opener.location umschreiben und den Nutzer unbemerkt zu einer Phishing-Seite navigieren. COOP trennt diese Referenz bei verschiedenen Origins.
Die Werte
unsafe-none— Standardwert, keine zusätzliche Isolation.same-origin-allow-popups— das Dokument behält Referenzen zu Popups, die kein COOP setzen.same-origin— strengste Isolation, trennt alle Cross-Origin-Fensterreferenzen.
Cross-Origin-Isolation
Zusammen mit der Cross-Origin-Resource-Policy und der Cross-Origin-Embedder-Policy (require-corp) schaltet COOP den cross-origin isolated-Zustand frei. Er aktiviert leistungsstarke APIs wie SharedArrayBuffer, präzisere Zeitmessung über performance.now() und die Speicher-Analyse. Voraussetzung ist, dass COOP und COEP auf der Hauptseite gesetzt sind.
Verwandte Grundlagen
COOP gehört zur Familie der Schutz-Header neben X-Content-Type-Options, Referrer-Policy, Permissions-Policy und X-Frame-Options. Gegen manipulierte Folge-Anfragen helfen CSRF-Schutz und das SameSite-Cookie-Attribut; Grundlagen liefern HTTPS und der Browser als Ausführungsumgebung.