X-Frame-Options für Apache konfigurieren

Schritt-für-Schritt-Anleitung: X-Frame-Options und CSP frame-ancestors auf Apache einrichten — mit .htaccess oder vHost-Konfiguration, kompatibel mit Shared Hosting.

Apache · Schritt für Schritt

Clickjacking-Schutz auf Apache

X-Frame-Options verhindert, dass Ihre Website in fremden iFrames eingebettet wird. Apache setzt den Header über mod_headers — entweder in der .htaccess-Datei (Shared Hosting) oder in der vHost-Konfiguration (eigener Server). Der IfModule-Wrapper stellt sicher, dass bei fehlendem Modul kein 500-Fehler entsteht. Setzen Sie zusätzlich frame-ancestors als CSP-Direktive für Defense-in-Depth.

X-Frame-Options ist mit 10 von 166 Punkten ein Faktor im Wolf-Agents Web Security Check. Die Konfiguration dauert weniger als 5 Minuten.

1 Schritt 1 von 2

X-Frame-Options und frame-ancestors konfigurieren

Fügen Sie den folgenden Block in Ihre .htaccess-Datei im Stammverzeichnis ein. Beide Header zusammen bieten Defense-in-Depth: X-Frame-Options als Fallback, frame-ancestors als modernen Schutz.

.htaccess Produktiv
# Clickjacking-Schutz — Defense-in-Depth
<IfModule mod_headers.c>
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set Content-Security-Policy "frame-ancestors 'self'"
</IfModule>
Bestehende CSP beachten

Wenn Sie bereits einen Content-Security-Policy-Header setzen, fügen Sie frame-ancestors 'self' zu Ihrer bestehenden CSP hinzu, statt einen zweiten CSP-Header zu setzen. Zwei separate CSP-Header können zu unerwartetem Verhalten führen.

2 Schritt 2 von 2

Konfiguration testen und verifizieren

Bei .htaccess-Änderungen ist kein Neustart nötig — Apache liest die Datei bei jedem Request. Bei vHost-Änderungen laden Sie Apache neu. Verifizieren Sie beide Header mit curl.

Terminal Verifizieren
# Bei vHost-Änderungen: Apache neu laden
sudo systemctl reload apache2

# X-Frame-Options-Header prüfen
curl -sI https://ihre-domain.de | grep -i x-frame

# Erwartete Ausgabe:
# X-Frame-Options: SAMEORIGIN
Wenn der Header nicht erscheint, prüfen Sie ob mod_headers aktiv ist: apachectl -M | grep headers. Auf Debian/Ubuntu aktivieren Sie das Modul mit a2enmod headers.

Wie steht Ihre Domain bei X-Frame-Options?

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

Häufig gestellte Fragen

Funktioniert X-Frame-Options mit .htaccess auf Shared Hosting?

Ja, solange Ihr Hosting-Anbieter mod_headers aktiviert hat. Die meisten Shared-Hosting-Anbieter (All-Inkl, IONOS, Strato, Hetzner) unterstützen mod_headers. Der IfModule-Wrapper stellt sicher, dass bei fehlendem Modul kein 500-Fehler auftritt.

Warum brauche ich den IfModule-Wrapper?

Der IfModule-Wrapper verhindert einen 500-Fehler, falls mod_headers nicht geladen ist. Ohne den Wrapper und ohne mod_headers würde Apache die Konfiguration als ungültig ablehnen und die Website komplett ausfallen.

Soll ich beide Header setzen oder reicht X-Frame-Options?

Setzen Sie beide Header. X-Frame-Options ist der Fallback für älteste Clients. CSP frame-ancestors ist der moderne Standard und bietet Multi-Origin-Support. Bei Konflikten priorisieren moderne Browser frame-ancestors. Defense-in-Depth: Beide Header parallel setzen.

Muss ich Apache nach der .htaccess-Änderung neu starten?

Nein. Änderungen in .htaccess wirken sofort — Apache liest die Datei bei jedem Request. Nur bei Änderungen in der vHost-Konfiguration ist ein Reload nötig (systemctl reload apache2).

Was passiert, wenn ich bereits eine CSP mit frame-ancestors habe?

Wenn Ihre bestehende CSP bereits frame-ancestors enthält, fügen Sie keinen zweiten Content-Security-Policy-Header hinzu — das kann zu Konflikten führen. Setzen Sie nur X-Frame-Options als zusätzlichen Fallback.