← Alle Checks
SicherheitTypische Schwere: Niedrig

Header zur Origin-Isolation

Prüft, ob die Header COOP und CORP fehlen, die deine Website gegen Cross-Origin-Angriffe abschotten.

Was es prüft

Dieser Scanner prüft, ob deiner Seite die Herkunftsisolations-Header COOP und CORP fehlen. Er erkennt das Fehlen dieser Header, die deine Seite im Browser von anderen Herkünften trennen.

Warum es wichtig ist

Ohne diese Header ist deine Seite anfälliger für bestimmte Cross-Origin-Angriffe, bei denen eine andere Seite versucht, mit deiner zu interagieren oder Daten zu lesen, die sie nicht lesen sollte. Herkunftsisolation ist eine zusätzliche Schutzschicht, die solche Risiken verringert.

Wie man es behebt

Füge die Header Cross-Origin-Opener-Policy und Cross-Origin-Resource-Policy in der Konfiguration deines Servers oder CDN hinzu. Fang mit vorsichtigen Werten an und prüfe, ob deine Ressourcen und Integrationen noch funktionieren, bevor du sie verschärfst.

Wie diese Prüfung funktioniert

Scanaris schaut in der Hauptantwort deiner Seite nach zwei Headern: Cross-Origin-Opener-Policy (COOP) und Cross-Origin-Resource-Policy (CORP). Fehlt einer oder fehlen beide, öffnet er einen einzigen Befund mit niedrigem Schweregrad, der nennt, welche. Er bewertet nicht den Wert, nur das Vorhandensein. Das sind die beiden Origin-Isolations-Header, die sich am leichtesten einführen lassen; der dritte der Familie, Cross-Origin-Embedder-Policy, wird nicht verlangt, weil er jede Drittanbieter-Ressource bricht, die nicht mitspielt, und sich auf einer normalen Seite selten lohnt.

Was jeder schützt

COOP entscheidet, ob dein Fenster eine „Browsing-Context-Gruppe" mit dem teilt, das es geöffnet hat, oder mit denen, die du öffnest. Mit same-origin hat eine Seite einer anderen Domain, die deine per window.open öffnet, keine nutzbare Referenz mehr darauf (und umgekehrt), was Manipulationsangriffe zwischen Tabs unterbindet und den Weg schließt, über den Speicherlecks vom Typ Spectre ausgenutzt werden. CORP entscheidet, wer deine Ressourcen einbetten darf. Mit same-origin kann eine andere Seite deine Bilder, Skripte oder Schriften nicht per <img>- oder <script>-Tag laden, auch wenn die URLs öffentlich sind: Der Browser blockiert die Antwort, bevor sie diese Seite erreicht. Keiner von beiden behebt einen bestehenden Fehler; sie sind Verteidigung in der Tiefe, und deshalb ist ihr Fehlen von niedrigem Schweregrad.

So fügst du sie hinzu

Empfohlene Werte für eine Seite, die keine Ressourcen mit anderen Domains teilt:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
  • Nuxt: in routeRules der nuxt.config, unter der Regel '/**', neben deinen anderen Headern.
  • Next.js: in der Funktion headers() der next.config.js.
  • Vercel: in vercel.json, Abschnitt headers. Netlify: in _headers, unter /*.
  • nginx: zwei Zeilen add_header ... always; im server-Block. Apache: Header always set im VirtualHost.
  • Express: helmet() fügt sie in aktuellen Versionen standardmäßig hinzu; prüf, welche Version du installiert hast.

Zwei Dinge vor dem Aktivieren prüfen

  • Logins per Popup. Nutzt du „Mit Google anmelden" oder einen anderen Anbieter im Popup-Modus, muss das Popup mit dem Fenster reden, das es geöffnet hat. Mit same-origin geht das nicht mehr; nutze same-origin-allow-popups, das den Schutz behält und diesen Fall erlaubt.
  • Ressourcen, die du an andere Domains ausliefertst. Werden deine Bilder oder Schriften von einer anderen deiner Seiten geladen (ein Blog auf einer anderen Domain, ein Widget, das Dritte einbetten), blockiert same-origin sie dort. Nutze same-site, wenn die andere Seite eine Subdomain ist, oder cross-origin auf den konkreten Routen dieser Ressourcen.

Prüf, ob es behoben ist

curl -sI https://deinedomain.de | grep -iE "^cross-origin-(opener|resource)-policy:"

Beide Zeilen müssen erscheinen. Öffne dann deine Seite, teste den Login und jede Popup-Integration und schau in die Browser-Konsole: Eine von CORP blockierte Ressource taucht dort mit einer eindeutigen Meldung auf.

Häufige Fragen

Ersetzt das CORS?

Nein, sie ergänzen sich und zeigen in entgegengesetzte Richtungen. CORS öffnet deine Antworten bei Bedarf für bestimmte Origins; CORP schließt sie standardmäßig für jeden, der sie einbetten will. Du kannst CORP same-origin seitenweit haben und CORS auf einer API-Route offen.

Brauche ich auch Cross-Origin-Embedder-Policy?

Nur wenn du SharedArrayBuffer oder hochauflösende Timer willst (Videoschnitt, Emulatoren, manche WebAssembly-Apps). COEP verlangt, dass alles, was du einbettest, CORP oder CORS trägt, und die meisten Drittanbieter-Skripte tun das nicht. Für eine gewöhnliche Seite reichen COOP und CORP.

Wie sehr verbessert das die Note?

Wenig in Punkten, weil es ein Befund mit niedrigem Schweregrad ist; aber es ist eine der wenigen Verbesserungen ohne Nebenwirkungen, wenn du die beiden Prüfungen oben machst. Die Header, die wirklich zählen, stehen in Sicherheits-Header und werden in HTTP-Header für Menschen erklärt.

Prüf es auf deiner Website

Scanne deine Website kostenlos und sieh, ob dieser und 44 weitere Checks bestehen, mit einem Fix-Prompt für jedes Problem.

Meine Website kostenlos scannen

Aus dem Blog

Verwandte Checks