X-Frame-Options
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, kann sie bereits aus den relevanten Webstandards entfernt worden sein, befindet sich im Prozess der Entfernung oder wird nur aus Kompatibilitätsgründen beibehalten. Vermeiden Sie die Verwendung und aktualisieren Sie gegebenenfalls bestehenden Code; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu treffen. Beachten Sie, dass diese Funktion jederzeit nicht mehr funktionieren kann.
Warnung: Anstelle dieses Headers verwenden Sie die frame-ancestors
Direktive in einem Content-Security-Policy
Header.
Der X-Frame-Options
HTTP Antwort-Header kann verwendet werden, um anzuzeigen, ob ein Browser erlaubt sein soll, eine Seite in einem <frame>
, <iframe>
, <embed>
oder <object>
darzustellen. Websites können dies nutzen, um Click-Jacking Angriffe zu vermeiden, indem sie sicherstellen, dass ihre Inhalte nicht in andere Sites eingebettet werden.
Die zusätzliche Sicherheit wird nur geboten, wenn der Benutzer, der das Dokument aufruft, einen Browser verwendet, der X-Frame-Options
unterstützt.
Header-Typ | Antwort-Header |
---|---|
Verbotener Header-Name | nein |
Syntax
Es gibt zwei mögliche Direktiven für X-Frame-Options
:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
Direktiven
Wenn Sie DENY
angeben, wird nicht nur der Versuch des Browsers, die Seite in einem Frame zu laden, fehlschlagen, wenn sie von anderen Seiten geladen wird. Versuche, dies von der gleichen Site aus zu tun, scheitern ebenfalls. Wenn Sie jedoch SAMEORIGIN
angeben, können Sie die Seite weiterhin in einem Frame verwenden, solange die Site, die sie in einem Frame einbettet, die gleiche ist wie die, die die Seite liefert.
DENY
-
Die Seite kann in keinem Frame dargestellt werden, unabhängig von der Site, die versucht, dies zu tun.
SAMEORIGIN
Veraltet-
Die Seite kann nur angezeigt werden, wenn alle übergeordneten Frames denselben Ursprung haben wie die Seite selbst.
ALLOW-FROM origin
Veraltet-
Dies ist eine veraltete Direktive. Moderne Browser, die Antwort-Header mit dieser Direktive finden, ignorieren den Header vollständig. Der
Content-Security-Policy
HTTP-Header hat eineframe-ancestors
Direktive, die Sie stattdessen verwenden sollten.
Beispiele
Warnung: Das Setzen von X-Frame-Options
im <meta>
Element (z.B. <meta http-equiv="X-Frame-Options" content="deny">
) hat keine Wirkung. X-Frame-Options
wird nur über HTTP-Header durchgesetzt, wie in den folgenden Beispielen gezeigt.
Apache konfigurieren
Um Apache so zu konfigurieren, dass der X-Frame-Options
Header für alle Seiten gesendet wird, fügen Sie dies zur Konfiguration Ihrer Site hinzu:
Header always set X-Frame-Options "SAMEORIGIN"
Um Apache so einzustellen, dass X-Frame-Options
auf DENY
gesetzt wird, fügen Sie dies zur Konfiguration Ihrer Site hinzu:
Header set X-Frame-Options "DENY"
Nginx konfigurieren
Um Nginx so zu konfigurieren, dass der X-Frame-Options
Header gesendet wird, fügen Sie dies Ihrer http-, server- oder location-Konfiguration hinzu:
add_header X-Frame-Options SAMEORIGIN always;
Sie können den X-Frame-Options
Header auf DENY
setzen, indem Sie folgendes verwenden:
add_header X-Frame-Options DENY always;
IIS konfigurieren
Um IIS so zu konfigurieren, dass der X-Frame-Options
Header gesendet wird, fügen Sie dies zur Web.config
Datei Ihrer Site hinzu:
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
Für weitere Informationen, siehe den Microsoft-Supportartikel zur Konfiguration mit der IIS-Manager-Benutzeroberfläche.
HAProxy konfigurieren
Um HAProxy so zu konfigurieren, dass der X-Frame-Options
Header gesendet wird, fügen Sie dies Ihrer Frontend-, Listen- oder Backend-Konfiguration hinzu:
rspadd X-Frame-Options:\ SAMEORIGIN
Alternativ, in neueren Versionen:
http-response set-header X-Frame-Options SAMEORIGIN
Express konfigurieren
Um X-Frame-Options
auf SAMEORIGIN
mit Helmet zu setzen, fügen Sie das Folgende zur Serverkonfiguration hinzu:
const helmet = require("helmet");
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Spezifikationen
Specification |
---|
HTML Standard # the-x-frame-options-header |
Browser-Kompatibilität
BCD tables only load in the browser