X-Frame-Options in PHP konfigurieren

Schritt-für-Schritt-Anleitung: X-Frame-Options in PHP einrichten — Clickjacking-Schutz mit header()-Code zum Kopieren und CSP frame-ancestors.

PHP · Schritt für Schritt

X-Frame-Options in PHP

X-Frame-Options schützt vor Clickjacking-Angriffen, bei denen Ihre Seite in einem unsichtbaren iframe eingebettet wird. Der Header verhindert, dass Angreifer Benutzer zu ungewollten Klicks verleiten. Mit 10 von 166 Punkten im Wolf-Agents Web Security Check.

In PHP setzen Sie X-Frame-Options per header(). Für modernen Schutz verwenden Sie zusätzlich frame-ancestors in der Content Security Policy — X-Frame-Options bleibt als Fallback für ältere Browser wichtig.

In PHP-Projekten gibt es drei Wege, Security-Header zu setzen: die header()-Funktion direkt im Code, eine zentrale auto_prepend_file in der php.ini oder ein PSR-15 Middleware-Stack in modernen Frameworks. Fuer Clickjacking-Schutz empfehlen wir die auto_prepend_file-Methode, da sie alle PHP-Responses abdeckt -- auch Fehlerseiten und Legacy-Code, der keine Middleware verwendet.

Beachten Sie, dass header() in PHP vor jeder Ausgabe aufgerufen werden muss. Sobald der Body gesendet wird (auch durch ein einzelnes Leerzeichen vor <?php), koennen keine Header mehr gesetzt werden. Verwenden Sie output_buffering oder auto_prepend_file, um dieses Problem zu vermeiden. Der Wolf-Agents Web Security Check prueft den X-Frame-Options-Header automatisch.

1Schritt 1 von 3

X-Frame-Options in PHP konfigurieren

Fügen Sie den Header in Ihrer security-headers.php hinzu. Über auto_prepend_file in der .user.ini wird die Datei vor jedem PHP-Script geladen.

security-headers.phpProduktiv
<?php
// security-headers.php — Clickjacking-Schutz

if (!headers_sent()) {
    // X-Frame-Options — Legacy-Schutz
    header('X-Frame-Options: DENY');

    // frame-ancestors in CSP — moderner Ersatz
    // Wird bereits in der CSP-Konfiguration gesetzt:
    // frame-ancestors 'none'
}
2Schritt 2 von 3

Konfiguration verifizieren

Prüfen Sie den Header mit curl oder dem Wolf-Agents Web Security Check.

TerminalVerifizierung
# X-Frame-Options pruefen
curl -sI https://ihre-domain.de | grep -i x-frame-options

# Erwartete Ausgabe:
X-Frame-Options: DENY
Nutzen Sie den Wolf-Agents Web Security Check für eine vollständige Prüfung aller 10 Punkte dieses Headers.
3Schritt 3 von 3

Häufige Fehler

ALLOW-FROM ist veraltet

X-Frame-Options: ALLOW-FROM wird von modernen Browsern nicht mehr unterstützt. Verwenden Sie stattdessen frame-ancestors in der CSP, um bestimmte Domains zu erlauben.

SAMEORIGIN bei mehreren Subdomains

SAMEORIGIN erlaubt nur Frames von der exakt gleichen Origin. Wenn Sie Iframes zwischen Subdomains benötigen, verwenden Sie frame-ancestors in der CSP mit den erlaubten Domains.

Doppelter Header durch CSP und X-Frame-Options

Wenn frame-ancestors in der CSP gesetzt ist, hat X-Frame-Options keine Wirkung in modernen Browsern. Setzen Sie trotzdem beide — X-Frame-Options dient als Fallback für IE11 und ältere Browser.

Compliance-Relevanz

OWASP — ASVS V14.4.7 — X-Frame-Options oder frame-ancestors als Pflicht
NIS2 — Art. 21(e) — Sicherheitsmaßnahmen bei der Entwicklung von Informationssystemen

Wie steht Ihre Domain bei X-Frame-Options?

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