Cross-Origin Headers für LiteSpeed konfigurieren

Schritt-für-Schritt-Anleitung: COOP, COEP und CORP auf LiteSpeed setzen — Spectre-Schutz per .htaccess, vhconf.conf oder Web Admin Console.

LiteSpeed · Schritt für Schritt

Cross-Origin Headers auf LiteSpeed

Cross-Origin Headers (COOP, COEP, CORP) schützen gegen Spectre-Seitenkanalangriffe, indem sie den Browsing-Context isolieren und Cross-Origin-Zugriffe kontrollieren. Die drei Header bilden zusammen eine Schutzschicht, die verhindert, dass ein Angreifer über einen kompromittierten Prozess sensible Daten aus dem Speicher anderer Tabs auslesen kann. Sie sind mit 30 von 166 Punkten ein gewichtiger Faktor im Wolf-Agents Web Security Check.

LiteSpeed unterstützt die Apache-kompatible mod_headers-Syntax. Besondere Vorsicht ist bei Cross-Origin-Embedder-Policy: require-corp geboten — dieser kann externe Ressourcen blockieren, wenn der CDN-Anbieter keinen passenden CORP-Header setzt. Starten Sie mit credentialless und testen Sie gründlich. Die vhconf.conf erlaubt pfadspezifische Konfiguration, etwa CORP cross-origin für statische Assets.

1 Variante 1: .htaccess

Cross-Origin Headers per .htaccess

Setzen Sie alle drei Header in einer .htaccess-Datei. credentialless für COEP ist weniger restriktiv als require-corp und bricht weniger externe Einbindungen. Für SharedArrayBuffer-Zugriff (Web Workers, WASM) benötigen Sie jedoch require-corp.

.htaccess Shared Hosting
# .htaccess — Cross-Origin Headers auf LiteSpeed
<IfModule mod_headers.c>
    # Cross-Origin-Opener-Policy: Browsing-Context isolieren
    Header always set Cross-Origin-Opener-Policy "same-origin"

    # Cross-Origin-Resource-Policy: Nur gleiche Origin
    Header always set Cross-Origin-Resource-Policy "same-origin"

    # Cross-Origin-Embedder-Policy: Vorsichtig starten
    Header always set Cross-Origin-Embedder-Policy "credentialless"
    # Für SharedArrayBuffer: "require-corp" (strenger)
</IfModule>
2 Variante 2: vhconf.conf

Virtual-Host-Konfiguration mit pfadspezifischem CORP

Auf eigenen Servern ist die vhconf.conf bevorzugt — nicht durch Nutzer überschreibbar und mit höchster Priorität. Die vhconf.conf erlaubt unterschiedliche CORP-Werte pro Pfad: same-origin für HTML-Seiten, cross-origin für statische Assets, die von anderen Domains geladen werden sollen. Die Web Admin Console (Port 7080) bietet das gleiche unter Virtual Hosts > [vhost] > Context.

vhconf.conf Eigener Server
# /usr/local/lsws/conf/vhosts/example/vhconf.conf
# Web Admin Console > Virtual Hosts > [vhost] > Context

context / {
  type                    NULL
  location                $DOC_ROOT/

  extraHeaders {
    Header always set Cross-Origin-Opener-Policy "same-origin"
    Header always set Cross-Origin-Resource-Policy "same-origin"
    Header always set Cross-Origin-Embedder-Policy "credentialless"
  }
}

# Für CDN-Assets: CORP cross-origin erlauben
context /static/ {
  type                    NULL
  location                $DOC_ROOT/static/

  extraHeaders {
    Header always set Cross-Origin-Resource-Policy "cross-origin"
  }
}
LSCache und Cross-Origin Headers

LSCache cached Response-Header zusammen mit den Responses. Stellen Sie sicher, dass die Cross-Origin-Header gesetzt sind, bevor Sie LSCache aktivieren. Nach Änderungen an den Headern müssen Sie sowohl einen Graceful Restart ausführen als auch LSCache leeren, damit neue Responses die aktualisierten Header enthalten.

Konfiguration testen und verifizieren

Prüfen Sie alle drei Header nach dem Graceful Restart. Testen Sie auch, ob externe Ressourcen (CDN-Bilder, Google Fonts, Analytics-Scripts) weiterhin geladen werden — COEP kann diese blockieren. Der Wolf-Agents Web Security Check verifiziert alle Cross-Origin Headers automatisch.

Terminal Verifizierung
# 1. Graceful Restart (LiteSpeed cached .htaccess!)
/usr/local/lsws/bin/lswsctrl restart

# 2. Alle Cross-Origin Headers prüfen
curl -sI https://ihre-domain.de | grep -i cross-origin

# Erwartete Ausgabe:
# Cross-Origin-Opener-Policy: same-origin
# Cross-Origin-Resource-Policy: same-origin
# Cross-Origin-Embedder-Policy: credentialless

# 3. Browser DevTools: Console prüfen (F12)
# Bei COEP-Blockierungen erscheinen Fehlermeldungen:
# "net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep"

# 4. Externe Ressourcen einzeln testen
curl -sI https://cdn.example.com/image.jpg | grep -i cross-origin-resource
# CDN muss CORP: cross-origin setzen (oder crossorigin-Attribut nutzen)
Aktivieren Sie COEP schrittweise: Starten Sie mit credentialless, prüfen Sie die Browser-Konsole auf Blockierungen, und wechseln Sie erst nach erfolgreichem Test zu require-corp, falls SharedArrayBuffer benötigt wird.

Häufige Fehler bei Cross-Origin Headers auf LiteSpeed

Diese LiteSpeed-spezifischen Fehler treten bei der Cross-Origin-Header-Konfiguration am häufigsten auf.

COEP blockiert CDN-Ressourcen

require-corp blockiert Ressourcen ohne CORP-Header. Viele CDNs setzen diesen nicht. Lösung: credentialless verwenden oder crossorigin="anonymous" auf externe Ressourcen setzen.

LSCache cached Seiten ohne Header

Wenn LSCache Seiten cached, bevor Cross-Origin-Header gesetzt waren, fehlen diese in gecachten Responses. LSCache nach Änderungen leeren und Graceful Restart durchführen.

Web Admin Console überschreibt .htaccess

Header der Web Admin Console haben Vorrang über .htaccess. Prüfen Sie Virtual Hosts > Context > Header Operations auf Konflikte mit Ihren .htaccess-Direktiven.

Google Maps/YouTube brechen mit COOP same-origin

Eingebettete Iframes (Maps, YouTube) können mit COOP: same-origin Probleme verursachen. Testen Sie alle Embeds gründlich nach der Konfiguration. same-origin-allow-popups ist eine weniger restriktive Alternative.

.htaccess cached — Header-Änderung nicht aktiv

LiteSpeed cached .htaccess-Dateien. Ohne Graceful Restart bleiben die alten Header aktiv: /usr/local/lsws/bin/lswsctrl restart

Plesk LiteSpeed-Plugin verwaltet Header separat

Das Plesk LiteSpeed-Plugin hat ein eigenes Header-Management. Manuelle Änderungen an der vhconf.conf können beim nächsten Plugin-Update überschrieben werden.

Compliance-Relevanz

PCI DSS 4.0 (Anforderung 6.2.4) fordert Schutz gegen bekannte Seitenkanalangriffe — Cross-Origin Headers schützen gegen Spectre und verwandte Schwachstellen. NIS2 (Art. 21) verlangt technische Maßnahmen gegen aktuelle Bedrohungen. BSI IT-Grundschutz empfiehlt Browser-Isolation als Defense-in-Depth-Maßnahme. OWASP listet Cross-Origin Headers als empfohlene Härtung. Der Wolf-Agents Web Security Check bewertet Cross-Origin Headers mit bis zu 30 Punkten.

Wie steht Ihre Domain bei Cross-Origin Headers?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.

Häufig gestellte Fragen

Was schützen Cross-Origin Headers auf LiteSpeed?

COOP (Cross-Origin-Opener-Policy) isoliert den Browsing-Context, COEP (Cross-Origin-Embedder-Policy) erfordert CORP/CORS für alle Ressourcen, und CORP (Cross-Origin-Resource-Policy) kontrolliert, wer Ressourcen einbetten darf. Zusammen schützen sie gegen Spectre-Seitenkanalangriffe.

Beeinflusst LSCache die Cross-Origin Headers?

LSCache cached Response-Header mit. Stellen Sie sicher, dass Cross-Origin-Header gesetzt sind, bevor LSCache Seiten cached. Nach einer Änderung müssen Sie LSCache leeren und einen Graceful Restart durchführen.

Brechen Cross-Origin Headers meine Website?

COEP: require-corp ist die strengste Einstellung und kann externe Ressourcen (CDN-Bilder, Fonts) blockieren, wenn diese keinen CORP-Header setzen. Beginnen Sie mit credentialless oder testen Sie gründlich.

Funktionieren Cross-Origin Headers mit QUIC/HTTP3?

Ja. LiteSpeed sendet die Header über alle Protokolle — HTTP/1.1, HTTP/2 und QUIC/HTTP3. Die Cross-Origin-Policies werden vom Browser unabhängig vom Transportprotokoll ausgewertet.