X-Frame-Options
Hinweis:
Für umfassendere Optionen als die, die von diesem Header angeboten werden, lesen Sie die frame-ancestors
Direktive in einem Content-Security-Policy
Header.
Der HTTP X-Frame-Options
Antwort-Header kann verwendet werden, um zu signalisieren, ob ein Browser eine Seite in einem <frame>
, <iframe>
, <embed>
oder <object>
rendern darf. Websites können dies verwenden, um Clickjacking-Angriffe zu vermeiden, indem sie sicherstellen, dass ihre Inhalte nicht in andere Seiten eingebettet werden.
Die zusätzliche Sicherheit wird nur geboten, wenn der Benutzer, der auf das Dokument zugreift, 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 der Versuch des Browsers, die Seite in einem Frame zu laden, nicht nur fehlschlagen, wenn sie von anderen Seiten geladen wird, sondern auch, wenn sie von der gleichen Seite geladen wird. Wenn Sie hingegen SAMEORIGIN
angeben, können Sie die Seite immer noch in einem Frame verwenden, solange die Seite, die sie in einem Frame einschließt, die gleiche ist wie die, die die Seite bereitstellt.
DENY
-
Die Seite kann nicht in einem Frame angezeigt werden, unabhängig von der Seite, die versucht, dies zu tun.
SAMEORIGIN
-
Die Seite kann nur angezeigt werden, wenn alle übergeordneten Frames den gleichen Ursprung wie die Seite selbst haben.
ALLOW-FROM origin
Veraltet-
Dies ist eine veraltete Direktive. Moderne Browser, die auf Antwort-Header mit dieser Direktive stoßen, ignorieren den Header vollständig. Der
Content-Security-Policy
HTTP-Header hat eineframe-ancestors
Direktive, die stattdessen verwendet werden sollte.
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 unten stehenden Beispielen gezeigt.
Konfiguration von Apache
Um Apache so zu konfigurieren, dass der X-Frame-Options
Header für alle Seiten gesendet wird, fügen Sie dies der Konfiguration Ihrer Website hinzu:
Header always set X-Frame-Options "SAMEORIGIN"
Um Apache so zu konfigurieren, dass X-Frame-Options
auf DENY
gesetzt wird, fügen Sie dies der Konfiguration Ihrer Website hinzu:
Header set X-Frame-Options "DENY"
Konfiguration von Nginx
Um Nginx so zu konfigurieren, dass der X-Frame-Options
Header gesendet wird, fügen Sie dies entweder 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:
add_header X-Frame-Options DENY always;
Konfiguration von IIS
Um IIS so zu konfigurieren, dass der X-Frame-Options
Header gesendet wird, fügen Sie dies in Ihrer Web.config
Datei hinzu:
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
Für weitere Informationen lesen Sie den Microsoft Support-Artikel über die Konfiguration dieser Einstellung mithilfe der IIS Manager Benutzeroberfläche.
Konfiguration von HAProxy
Um HAProxy so zu konfigurieren, dass der X-Frame-Options
Header gesendet wird, fügen Sie dies Ihrer front-end, listen oder backend Konfiguration hinzu:
rspadd X-Frame-Options:\ SAMEORIGIN
Alternativ in neueren Versionen:
http-response set-header X-Frame-Options SAMEORIGIN
Konfiguration von Express
Um X-Frame-Options
auf SAMEORIGIN
mit Helmet zu setzen, fügen Sie folgendes Ihrer 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