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.
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.
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.
<?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'
}Konfiguration verifizieren
Prüfen Sie den Header mit curl oder dem Wolf-Agents Web Security Check.
# X-Frame-Options pruefen
curl -sI https://ihre-domain.de | grep -i x-frame-options
# Erwartete Ausgabe:
X-Frame-Options: DENYHä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
Wie steht Ihre Domain bei X-Frame-Options?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.