Was die Cross-Origin-Header machen
Die Cross-Origin-Header trennen deine Seite von fremden Fenstern und Seiten. Sie schützen vor Angriffen, die über offene Fensterverbindungen oder geteilten Speicher im Browser Daten abgreifen.
So funktioniert es
Öffnet eine Seite ein neues Fenster oder wird sie aus einem geöffnet, behalten beide eine Verbindung zueinander. Über window.opener kann eine fremde Seite dein Fenster zum Beispiel auf eine andere Adresse umlenken oder aus seinem Verhalten Rückschlüsse ziehen. Außerdem laufen Seiten, die so verbunden sind, im Browser oft im selben Prozess. Angriffe wie Spectre können dort über geteilten Speicher Daten der anderen Seite auslesen.
Drei Header regeln das:
Cross-Origin-Opener-Policy(COOP) trennt dein Fenster von Fenstern fremder Seiten. Mitsame-originsteckt der Browser deine Seite in eine eigene Gruppe; fremde Fenster haben keinen Zugriff mehr.Cross-Origin-Embedder-Policy(COEP) sorgt dafür, dass deine Seite nur fremde Inhalte lädt, die das ausdrücklich erlauben.Cross-Origin-Resource-Policy(CORP) ist diese Erlaubnis von der anderen Seite: Eine Datei sagt, ob sie nur von derselben Seite (same-origin), derselben Website (same-site) oder von allen (cross-origin) geladen werden darf.
COOP und COEP zusammen machen eine Seite „cross-origin isolated“. Erst dann geben Browser Funktionen wie SharedArrayBuffer frei.
Worauf es ankommt
- COOP ist der einfachste Schritt. Er bringt den größten Teil des Schutzes und betrifft nur Fenster, nicht das Laden von Inhalten. Der Bericht wertet sein Fehlen nur als Hinweis, nicht als Fehler.
- Pop-ups prüfen. Anmeldungen über ein Pop-up (zum Beispiel OAuth) oder Bezahlfenster, die an deine Seite zurückmelden, brauchen die Fensterverbindung. Für sie gibt es
same-origin-allow-popups: Dann behält deine Seite die Verbindung zu Fenstern, die sie selbst öffnet. - COEP nur mit Bedacht. Mit
require-corpblockiert der Browser jedes fremde Bild, Skript oder Video, das keine Erlaubnis sendet. Das brauchst du nur, wenn deine Seite die isolierten Funktionen nutzen will.
So richtest du es ein
Der empfohlene Header:
Cross-Origin-Opener-Policy: same-origin
Prüfe vorher, ob Anmeldungen über Pop-ups weiter funktionieren; falls nicht, nimm same-origin-allow-popups. Gesetzt wird der Header im Webserver oder in der Anwendung, von dir oder deiner Agentur.
COEP und CORP sind Sache der Entwickler, wenn eine Anwendung sie wirklich braucht.