X-Frame-Options für LiteSpeed konfigurieren
Schritt-für-Schritt-Anleitung: Clickjacking-Schutz auf LiteSpeed — X-Frame-Options und CSP frame-ancestors per .htaccess, Web Admin Console oder vhconf.conf.
Clickjacking-Schutz auf LiteSpeed
X-Frame-Options schützt Ihre Website vor Clickjacking-Angriffen, bei denen Angreifer Ihre Seite in einem unsichtbaren Iframe einbetten und Benutzerklicks abfangen. Ohne diesen Header können Login-Formulare, Zahlungsseiten oder Admin-Bereiche unbemerkt überlagert werden. Der Header ist mit 10 von 166 Punkten im Wolf-Agents Web Security Check bewertet.
LiteSpeed unterstützt die Apache-kompatible mod_headers-Syntax für X-Frame-Options. Für maximalen Schutz setzen Sie zusätzlich CSP frame-ancestors — dieser bietet granularere Kontrolle und hat in modernen Browsern Vorrang. Die Konfiguration kann per .htaccess (Shared Hosting), Web Admin Console (Port 7080, nur LiteSpeed Enterprise) oder vhconf.conf (OpenLiteSpeed und Enterprise) erfolgen.
X-Frame-Options per .htaccess setzen
Zwei Werte stehen zur Wahl: DENY verbietet das Einbetten komplett, SAMEORIGIN erlaubt das Einbetten nur auf der eigenen Domain. Für die meisten Websites ohne Iframe-Einbettungen ist DENY die sichere Wahl. Setzen Sie immer auch CSP frame-ancestors als modernere Ergänzung.
# .htaccess — Einbetten komplett verbieten (empfohlen)
<IfModule mod_headers.c>
Header always set X-Frame-Options "DENY"
# Ergänzend: CSP frame-ancestors (modernere Alternative)
Header always set Content-Security-Policy "frame-ancestors 'none'"
</IfModule> # .htaccess — Nur eigene Domain erlauben
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
# CSP frame-ancestors mit spezifischen Domains
Header always set Content-Security-Policy "frame-ancestors 'self' https://trusted-partner.de"
</IfModule> Virtual-Host-Konfiguration oder Web Admin Console
Auf eigenen Servern ist die vhconf.conf die bevorzugte Methode. Header dort gesetzt haben Vorrang über .htaccess und sind nicht durch Shared-Hosting-Nutzer überschreibbar. Bei LiteSpeed Enterprise können Sie alternativ die Web Admin Console (Port 7080) verwenden.
# /usr/local/lsws/conf/vhosts/example/vhconf.conf
# Virtual Host > Context > Header Operations
context / {
type NULL
location $DOC_ROOT/
extraHeaders {
Header always set X-Frame-Options "DENY"
Header always set Content-Security-Policy "frame-ancestors 'none'"
}
} # Web Admin Console (Port 7080) — GUI-Pfad:
# 1. Virtual Hosts > ihre-domain.de > Context
# 2. Type: Static, URI: /
# 3. Header Operations:
Header always set X-Frame-Options "DENY"
Header always set Content-Security-Policy "frame-ancestors 'none'"
# Hinweis: OpenLiteSpeed hat KEINE Web Admin Console.
# OpenLiteSpeed: Direkt in vhconf.conf konfigurieren.
# LiteSpeed Enterprise: Web Admin Console ODER vhconf.conf. OpenLiteSpeed (OLS) hat keine Web Admin Console. Konfigurieren Sie Header direkt in /usr/local/lsws/conf/vhosts/<name>/vhconf.conf. LiteSpeed Enterprise (LSWS) bietet zusätzlich die Web Admin Console auf Port 7080, deren Header-Konfiguration Vorrang über .htaccess hat.
Verifizierung
Nach dem Graceful Restart prüfen Sie die Header mit curl. Testen Sie auch Fehlerseiten — das always-Keyword stellt sicher, dass der Header auch bei 404/500-Antworten gesendet wird. Der Wolf-Agents Web Security Check prüft den Clickjacking-Schutz automatisch als Teil der 166 Prüfpunkte.
# 1. Graceful Restart (LiteSpeed cached .htaccess!)
/usr/local/lsws/bin/lswsctrl restart
# 2. X-Frame-Options und frame-ancestors prüfen
curl -sI https://ihre-domain.de | grep -iE "x-frame|frame-ancestors"
# Erwartete Ausgabe:
# X-Frame-Options: DENY
# Content-Security-Policy: frame-ancestors 'none'
# 3. Auch Fehlerseiten testen (always-Keyword prüfen)
curl -sI https://ihre-domain.de/nicht-vorhanden | grep -iE "x-frame|frame-ancestors"
# 4. Iframe-Einbettung testen (sollte blockiert werden)
# Erstellen Sie eine Test-HTML mit:
# <iframe src="https://ihre-domain.de"></iframe> Häufige Fehler bei X-Frame-Options auf LiteSpeed
Diese LiteSpeed-spezifischen Fehler treten bei der X-Frame-Options-Konfiguration am häufigsten auf und führen zu fehlenden oder unwirksamen Headern.
Web Admin Console und .htaccess senden doppelten Header
Wenn beide Konfigurationen den Header setzen, wird er doppelt gesendet. Chrome ignoriert doppelte X-Frame-Options komplett, Firefox blockiert. Nutzen Sie nur eine Methode.
.htaccess cached — Änderungen nicht sichtbar
LiteSpeed cached .htaccess-Dateien im Gegensatz zu Apache. Ohne Graceful Restart (/usr/local/lsws/bin/lswsctrl restart) bleibt der alte Header aktiv.
ALLOW-FROM wird von modernen Browsern ignoriert
Der Wert ALLOW-FROM uri ist veraltet und wird von Chrome, Firefox und Safari ignoriert. Nutzen Sie CSP frame-ancestors 'self' https://allowed-domain.de für domainspezifische Kontrolle.
LSCache liefert Header ohne always-Keyword
Ohne always sendet LiteSpeed den Header nur bei 2xx-Responses. Fehlerseiten (404, 500) bleiben ungeschützt. Verwenden Sie immer Header always set statt Header set.
Compliance-Relevanz
OWASP Top 10 listet Clickjacking als bekannten Angriffsvektor. PCI DSS 4.0 (Anforderung 6.2.4) fordert Schutz gegen bekannte Angriffstechniken — Clickjacking-Schutz ist explizit genannt. NIS2 (Artikel 21) verlangt technische Schutzmaßnahmen gegen bekannte Bedrohungen. BSI IT-Grundschutz (APP.3.1) empfiehlt den Einsatz von X-Frame-Options und CSP frame-ancestors als Härtungsmaßnahme. Der Wolf-Agents Web Security Check bewertet den Clickjacking-Schutz mit bis zu 10 Punkten.
Wie steht Ihre Domain bei X-Frame-Options?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Soll ich X-Frame-Options oder CSP frame-ancestors verwenden?
Idealerweise beides. X-Frame-Options wird von allen Browsern unterstützt (auch ältere). CSP frame-ancestors bietet mehr Flexibilität (z.B. einzelne Domains erlauben). Bei Konflikten hat frame-ancestors Vorrang in modernen Browsern.
Kann die Web Admin Console den .htaccess-Header überschreiben?
Ja. Header in der Web Admin Console (Port 7080) haben höchste Priorität. Prüfen Sie Virtual Hosts > Context > Header Operations, bevor Sie .htaccess verwenden. Bei OpenLiteSpeed gibt es keine Web Admin Console — dort verwenden Sie die vhconf.conf.
Was passiert, wenn X-Frame-Options doppelt gesetzt ist?
Browser können sich bei doppelten X-Frame-Options-Headern unterschiedlich verhalten. Chrome ignoriert den Header komplett, Firefox blockiert den Frame. Stellen Sie sicher, dass der Header nur einmal gesetzt wird — Web Admin Console oder .htaccess, nicht beides.