X-Frame-Options
Hinweis:
Für umfassendere Optionen als die dieses Headers bietet, siehe die frame-ancestors
Direktive in einem Content-Security-Policy
Header.
Der HTTP-X-Frame-Options
-Antwort-Header kann verwendet werden, um anzugeben, ob ein Browser erlaubt ist, eine Seite in einem <frame>
, <iframe>
, <embed>
oder <object>
darzustellen. Websites können dies nutzen, um Clickjacking-Angriffe zu vermeiden, indem sie sicherstellen, dass ihre Inhalte nicht in andere Sites eingebettet werden.
Die zusätzliche Sicherheit wird nur bereitgestellt, wenn der Benutzer, der auf das Dokument zugreift, einen Browser verwendet, der X-Frame-Options
unterstützt.
Header-Typ | Antwort-Header |
---|---|
Verbotener Anfrage-Header | 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 Rahmen zu laden, fehlschlagen, wenn sie von anderen Sites geladen wird, sondern auch, wenn sie von derselben Site geladen wird. Wenn Sie hingegen SAMEORIGIN
angeben, können Sie die Seite weiterhin in einem Rahmen verwenden, solange die Site, die sie in einem Rahmen einbettet, dieselbe ist wie die, von der die Seite bereitgestellt wird.
DENY
-
Die Seite kann nicht in einem Rahmen angezeigt werden, unabhängig von der Site, die versucht, dies zu tun.
SAMEORIGIN
-
Die Seite kann nur angezeigt werden, wenn alle übergeordneten Rahmen denselben Ursprung wie die Seite selbst haben.
ALLOW-FROM origin
Veraltet-
Dies ist eine veraltete Direktive. Moderne Browser, die Antwort-Header mit dieser Direktive vorfinden, ignorieren den Header vollständig. Der
Content-Security-Policy
HTTP-Header verfügt über eineframe-ancestors
Direktive, die Sie stattdessen verwenden sollten.
Beispiele
Warnung:
Das Setzen von X-Frame-Options
innerhalb des <meta>
Elements (z.B. <meta http-equiv="X-Frame-Options" content="deny">
) hat keine Wirkung. X-Frame-Options
wird nur über HTTP-Header erzwungen, wie in den folgenden 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 zur Konfiguration Ihrer Site 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 zur Konfiguration Ihrer Site 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 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;
Konfiguration von IIS
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>
Weitere Informationen finden Sie im Microsoft Support-Artikel zum Setzen dieser Konfiguration mit 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
mit Helmet auf SAMEORIGIN
zu setzen, fügen Sie folgendes zu Ihrer Server-Konfiguration hinzu:
const helmet = require("helmet");
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Spezifikationen
Specification |
---|
HTML # the-x-frame-options-header |
Browser-Kompatibilität
BCD tables only load in the browser