← Zurück zum Glossar
webentwicklung

CORP

Cross-Origin Resource Policy — HTTP-Header, der festlegt, von welchen Origins eine Ressource eingebettet werden darf.

Aktualisiert: 23. Februar 2026

Was ist CORP?

CORP (Cross-Origin Resource Policy) ist ein HTTP-Response-Header, der festlegt, welche Origins eine Ressource (Bild, Skript, Stylesheet, API-Response) laden und einbetten dürfen. Er schützt vor Spectre-ähnlichen Side-Channel-Angriffen, bei denen eine böswillige Seite Ressourcen einer anderen Domain in ihren Prozess laden und im Speicher auslesen könnte.

CORP ist eng mit COEP (Cross-Origin Embedder Policy) verzahnt: Eine Seite, die Cross-Origin Isolation aktiviert (für SharedArrayBuffer, high-resolution Timer etc.), benötigt, dass alle eingebetteten Ressourcen entweder CORP-Header setzen oder über CORS freigegeben sind.

Kurzprofil CORP

Kurzprofil

  • Typ: HTTP-Response-Header (Sicherheits-Policy)
  • Header: Cross-Origin-Resource-Policy
  • Werte: same-origin, same-site, cross-origin
  • Spezifikation: Fetch Standard (WHATWG)
  • Relevanz für WordPress/Web: Mittel (wichtig bei Cross-Origin-Isolation)

Wie funktioniert CORP?

Der Header wird mit der Ressource ausgeliefert und hat drei mögliche Werte:

  • same-origin: Nur Seiten vom exakt gleichen Ursprung (Protokoll + Domain + Port) dürfen die Ressource laden.
  • same-site: Alle Seiten derselben registrable Domain dürfen laden (also app.example.com darf Ressourcen von api.example.com laden).
  • cross-origin: Alle Origins dürfen laden — entspricht dem Verzicht auf Einschränkung, nötig für CDN-Ressourcen die überall eingebettet werden sollen.

Beispiel in Nginx:

# Für statische Assets (Bilder, Fonts)
location ~* \.(woff2|png|jpg|svg)$ {
    add_header Cross-Origin-Resource-Policy "cross-origin";
}

# Für API-Endpoints die nur intern genutzt werden
location /wp-json/ {
    add_header Cross-Origin-Resource-Policy "same-origin";
}

CORP in der Praxis

CORP wird häufig im Kontext von Cross-Origin Isolation benötigt. Wenn eine Seite SharedArrayBuffer oder präzise Timer verwenden will (relevant für WebAssembly, Audio-Verarbeitung, Performance-Messungen), muss sie Cross-Origin Isolation aktivieren:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

Mit COEP: require-corp blockiert der Browser alle Cross-Origin-Ressourcen, die keinen CORP-Header mit cross-origin oder eine CORS-Freigabe haben. WordPress-Seiten mit externen Bildern, Google Fonts oder YouTube-Embeds werden plötzlich von fehlenden CORP-Headern der Drittanbieter blockiert — was die Aktivierung von Cross-Origin Isolation für WordPress zu einer komplexen Aufgabe macht.

Auf einen Blick

Das Wichtigste

  • CORP-Header schützt Ressourcen vor unberechtigtem Cross-Origin-Laden
  • Drei Werte: same-origin (streng), same-site (moderat), cross-origin (offen)
  • Pflicht für alle Ressourcen auf Seiten mit COEP: require-corp
  • CDN-Ressourcen und externe Assets brauchen cross-origin, wenn sie überall eingebettet werden sollen
  • Fehlende CORP-Header auf Drittanbieter-Ressourcen blockieren Cross-Origin Isolation

Was passiert wenn CORP falsch konfiguriert ist?

Fehlender CORP-Header auf Ressourcen einer Seite mit COEP: require-corp führt dazu, dass diese Ressourcen vom Browser blockiert werden — sie erscheinen nicht, erzeugen aber auch keine benutzerfreundliche Fehlermeldung. Stattdessen sieht man in den DevTools: Cross-Origin-Resource-Policy header missing.

Umgekehrt: same-origin auf CDN-Ressourcen, die auf vielen Domains eingebettet werden sollen, bricht alle Einbettungen außer der eigenen Domain.

Häufige Fragen

Was ist der Unterschied zwischen CORP und CORS? CORS erlaubt JavaScript in einem bestimmten Browser-Kontext, Cross-Origin-Antworten zu lesen. CORP verhindert, dass Ressourcen überhaupt in einen fremden Prozess geladen werden — auch ohne JavaScript-Zugriff auf den Inhalt. CORP ist der tiefere Schutz gegen Spectre; CORS regelt den Datenzugriff.

Muss ich CORP bei normalen WordPress-Seiten setzen? Nicht zwingend. CORP ist vor allem relevant, wenn Cross-Origin Isolation (COEP/COOP) aktiviert werden soll oder wenn Ressourcen gezielt vor Einbettung auf fremden Seiten geschützt werden sollen.

Wie überprüfe ich fehlende CORP-Header? Chrome DevTools → Application → Security → Cross-Origin Isolation. Alternativ: curl -I https://example.com/resource.jpg | grep -i cross-origin.

Verwandte Begriffe

CDN · HTTP

start call_