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.

LiteSpeed · Schritt für Schritt

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.

1 Variante 1: .htaccess (Shared Hosting)

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 DENY
# .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 SAMEORIGIN
# .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>
2 Variante 2: vhconf.conf / Web Admin Console

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.

vhconf.conf Eigener Server
# /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 LSWS Enterprise
# 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 vs. LiteSpeed Enterprise

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.

Terminal Verifizierung
# 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.