Was ist X-Frame-Options und wofür ist es gut?
X-Frame-Options ist ein HTTP-Header, der verhindert, dass deine Webseiten in einem iFrame anderer Webseiten eingebettet werden. Dadurch schützt du deine Seite vor Clickjacking-Angriffen.
Schritt-für-Schritt-Anleitung zur Aktivierung
- Schritt 1: Prüfe, ob der Header bereits gesendet wird. Führe z. B. aus der Kommandozeile aus:
curl -I https://deine-domain.tldund suche nach Zeilen wie:X-Frame-Options. - Schritt 2: Wähle die passende Option.
- DENY – Die Seite darf in keinem iFrame angezeigt werden.
- SAMEORIGIN – Die Seite darf nur in iFrames derselben Domain eingebettet werden.
- Hinweis: ALLOW-FROM ist veraltet und wird von modernen Browsern nicht mehr zuverlässig unterstützt.
- Schritt 3: Konfiguriere den Header je nach Webserver. Unten findest du Beispiele.
- Schritt 4: Teste den Header erneut mit curl, um sicherzustellen, dass er gesetzt ist.
- Schritt 5: Optional: Nutze zusätzlich Content-Security-Policy frame-ancestors als modernen Schutz.
Beispiele für gängige Server
Apache (httpd.conf oder .htaccess)
Füge Folgendes hinzu, um X-Frame-Options auf SAMEORIGIN zu setzen:
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
</IfModule>
Nginx
Füge in deiner Server- oder Location-Konfiguration Folgendes hinzu:
add_header X-Frame-Options "SAMEORIGIN";
IIS (web.config)
Für IIS fügst du in der web.config unter system.webServer/httpProtocol/customHeaders hinzu:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
</system.webServer>
Modernere Alternative: Content-Security-Policy frame-ancestors
frame-ancestors ist Teil der Content-Security-Policy (CSP) und bietet flexiblere Steuerung als X-Frame-Options. Beispiel:
Content-Security-Policy: frame-ancestors 'self';
Hinweis: CSP kann zusätzlich zu X-Frame-Options verwendet werden, ersetzt diese jedoch nicht immer 1:1. Prüfe Kompatibilität deiner Systeme.
Schnellcheck nach der Umsetzung
- Schritt 1: Server neu starten oder Konfiguration neu laden.
- Schritt 2: erneut curl -I prüfen auf X-Frame-Options oder CSP-Verwendung.
- Schritt 3: Teste das Einbetten deiner Seite in einer anderen Domain.
Hilfreiche Hinweise
- X-Frame-Options wird von einigen älteren Browsern unterstützt. CSP frame-ancestors wird von modernen Browsern besser unterstützt.
- Vermeide Doppelkollisionen: Wenn du sowohl X-Frame-Options als auch CSP verwendest, stelle sicher, dass CSP die gewünschte Politik widerspiegelt.
- Dokumentiere deine Sicherheitsentscheidungen in der Wissensdatenbank für andere Entwickler.