X-Frame-Options auf Hetzner konfigurieren
Clickjacking-Schutz auf Ihrem Hetzner vServer oder Cloud Server einrichten — X-Frame-Options und CSP frame-ancestors für Nginx und Apache.
X-Frame-Options auf Hetzner
X-Frame-Options schützt vor Clickjacking-Angriffen, bei denen Ihre Website unsichtbar in einen iFrame eingebettet und der Benutzer zu unbeabsichtigten Klicks verleitet wird. Der Header bestimmt, ob und von wem Ihre Seite in einem iFrame angezeigt werden darf. Mit 10 von 166 Punkten im Wolf-Agents Web Security Check.
Verwenden Sie DENY, wenn Ihre Website nie in einem iFrame eingebettet werden soll — das ist der sicherste Wert und für die meisten Websites empfohlen. Verwenden Sie SAMEORIGIN nur, wenn Sie iFrames von der eigenen Domain benötigen, z.B. für Preview-Funktionen im CMS-Backend oder eingebettete Formulare.
Zusätzlich sollten Sie CSP frame-ancestors als moderne Alternative setzen. In Browsern mit CSP-Support überschreibt frame-ancestors den X-Frame-Options-Header — er bietet mehr Flexibilität und erlaubt das Whitelisting spezifischer Domains.
X-Frame-Options Header setzen
Wählen Sie zwischen DENY (keine Einbettung erlaubt) und SAMEORIGIN (nur eigene Domain). Der veraltete Wert ALLOW-FROM wird von modernen Browsern nicht mehr unterstützt — verwenden Sie dafür CSP frame-ancestors.
# /etc/nginx/conf.d/x-frame-options.conf — DENY (empfohlen)
# Verhindert jede Einbettung in iFrames
add_header X-Frame-Options "DENY" always; # /etc/nginx/conf.d/x-frame-options.conf — SAMEORIGIN
# Erlaubt Einbettung nur von der eigenen Domain
add_header X-Frame-Options "SAMEORIGIN" always; # /etc/apache2/conf-available/x-frame-options.conf — DENY
<IfModule mod_headers.c>
Header always set X-Frame-Options "DENY"
</IfModule> # /etc/apache2/conf-available/x-frame-options.conf — SAMEORIGIN
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
</IfModule> CSP frame-ancestors ergänzen
frame-ancestors in der Content Security Policy ist der moderne Ersatz für X-Frame-Options. In Browsern mit CSP-Support hat frame-ancestors Vorrang. Setzen Sie trotzdem beide Header — ältere Browser ohne CSP-Support nutzen dann den X-Frame-Options-Header als Fallback.
# Ergänzung: CSP frame-ancestors (moderne Alternative)
# In bestehender CSP hinzufügen oder separat setzen:
# Nginx — frame-ancestors 'none' (entspricht X-Frame-Options: DENY)
add_header Content-Security-Policy "frame-ancestors 'none'" always;
# Nginx — frame-ancestors 'self' (entspricht X-Frame-Options: SAMEORIGIN)
add_header Content-Security-Policy "frame-ancestors 'self'" always; Wenn Sie bereits eine Content Security Policy haben, fügen Sie frame-ancestors 'none' als Direktive hinzu — anstatt einen separaten CSP-Header zu setzen. Zwei CSP-Header auf derselben Antwort werden beide ausgewertet, was zu unerwarteten Restriktionen führen kann.
Verifizierung
Prüfen Sie beide Header mit curl. Der X-Frame-Options-Header sollte DENY oder SAMEORIGIN zeigen, und die CSP sollte frame-ancestors enthalten.
# Konfiguration testen und Webserver neu laden
sudo nginx -t && sudo systemctl reload nginx
# oder für Apache
sudo a2enconf x-frame-options && sudo apachectl configtest && sudo systemctl reload apache2
# Header prüfen
curl -sI https://ihre-domain.de | grep -i x-frame-options
curl -sI https://ihre-domain.de | grep -i content-security-policy Häufige Fehler bei X-Frame-Options auf Hetzner
Monitoring-Tools und iFrames
Einige Monitoring- und Uptime-Dienste (auch Hetzner Robot Status-Checks) nutzen iFrames zur Darstellung. Mit DENY werden diese Embeds blockiert. Wenn Sie solche Tools einsetzen, nutzen Sie CSP frame-ancestors 'self' monitor.domain.de anstatt X-Frame-Options aufzuweichen.
DENY vs. SAMEORIGIN Verwechslung
DENY blockiert jede Einbettung — auch von der eigenen Domain. Wenn Sie CMS-Preview-Funktionen, iframe-basierte Editoren oder interne Dashboards nutzen, die die eigene Seite einbetten, benötigen Sie SAMEORIGIN.
frame-ancestors überschreibt X-Frame-Options
Wenn Ihre CSP frame-ancestors 'self' enthält, aber X-Frame-Options auf DENY steht, gewinnt frame-ancestors in modernen Browsern. Stellen Sie sicher, dass beide Header die gleiche Absicht ausdrücken, um Verwirrung zu vermeiden.
Compliance-Relevanz
Clickjacking-Schutz ist eine grundlegende Sicherheitsmaßnahme, die von allen relevanten Frameworks als Mindeststandard verlangt wird. Ohne X-Frame-Options oder CSP frame-ancestors können Angreifer Benutzer zu unbeabsichtigten Aktionen verleiten.
Wie steht Ihre Domain bei X-Frame-Options?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.