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.

Hetzner · Schritt für Schritt

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.

1 Schritt 1 von 3

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.

Nginx — DENY
/etc/nginx/conf.d/x-frame-options.conf Empfohlen
# /etc/nginx/conf.d/x-frame-options.conf — DENY (empfohlen)
# Verhindert jede Einbettung in iFrames
add_header X-Frame-Options "DENY" always;
Nginx — SAMEORIGIN
/etc/nginx/conf.d/x-frame-options.conf Alternative
# /etc/nginx/conf.d/x-frame-options.conf — SAMEORIGIN
# Erlaubt Einbettung nur von der eigenen Domain
add_header X-Frame-Options "SAMEORIGIN" always;
Apache — DENY
/etc/apache2/conf-available/x-frame-options.conf Empfohlen
# /etc/apache2/conf-available/x-frame-options.conf — DENY
<IfModule mod_headers.c>
    Header always set X-Frame-Options "DENY"
</IfModule>
Apache — SAMEORIGIN
/etc/apache2/conf-available/x-frame-options.conf Alternative
# /etc/apache2/conf-available/x-frame-options.conf — SAMEORIGIN
<IfModule mod_headers.c>
    Header always set X-Frame-Options "SAMEORIGIN"
</IfModule>
2 Schritt 2 von 3

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.

Nginx / Apache CSP
# 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;
frame-ancestors in bestehender CSP integrieren

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.

3 Schritt 3 von 3

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.

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

NIS2Art. 21(e) — Sicherheit bei Erwerb, Entwicklung und Wartung von Netz- und Informationssystemen
BSIAPP.3.1 — Webserver-Absicherung, Schutz vor UI-Redressing und Clickjacking
OWASPOWASP Top 10 — Secure Headers als Schutzmaßnahme gegen Clickjacking

Wie steht Ihre Domain bei X-Frame-Options?

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