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.