X-Frame-Options header
Hinweis:
Für umfassendere Optionen als die, die dieser Header bietet, siehe die frame-ancestors-Direktive in einem Content-Security-Policy-Header.
Der HTTP X-Frame-Options Response-Header kann verwendet werden, um anzugeben, ob ein Browser eine Seite in einem <frame>, <iframe>, <embed> oder <object> rendern darf. Websites können dies nutzen, um Clickjacking-Angriffe zu vermeiden, indem sichergestellt wird, dass ihre Inhalte nicht in andere Websites eingebettet werden.
Die erhöhte Sicherheit wird nur geboten, wenn der Benutzer, der auf das Dokument zugreift, einen Browser verwendet, der X-Frame-Options unterstützt.
| Header-Typ | Response-Header |
|---|---|
| Verbotener Anforderungs-Header | Nein |
Syntax
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
Direktiven
DENY-
Die Seite kann nicht in einem Frame angezeigt werden, unabhängig davon, welche Seite versucht, dies zu tun. Nicht nur wird der Versuch des Browsers, die Seite in einem Frame zu laden, fehlschlagen, wenn sie von anderen Seiten geladen wird, auch Versuche beim Laden von derselben Seite werden fehlschlagen.
SAMEORIGIN-
Die Seite kann nur angezeigt werden, wenn alle übergeordneten Frames den gleichen Origin wie die Seite selbst haben. Sie können die Seite weiterhin in einem Frame verwenden, solange die Seite, die sie in einem Frame einbindet, dieselbe ist, die die Seite bereitstellt.
ALLOW-FROM originVeraltet-
Dies ist eine veraltete Direktive. Moderne Browser, die Antwort-Header mit dieser Direktive erhalten, ignorieren den Header vollständig. Der
Content-Security-PolicyHTTP-Header besitzt eineframe-ancestors-Direktive, die stattdessen verwendet werden sollte.
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 durchgesetzt, wie in den folgenden Beispielen gezeigt.
Konfigurieren von Apache
Um Apache so zu konfigurieren, dass es den X-Frame-Options-Header für alle Seiten sendet, fügen Sie dies Ihrer Site-Konfiguration hinzu:
Header always set X-Frame-Options "SAMEORIGIN"
Um Apache so zu konfigurieren, dass es X-Frame-Options auf DENY setzt, fügen Sie dies zur Konfiguration Ihrer Website hinzu:
Header set X-Frame-Options "DENY"
Konfigurieren von Nginx
Um Nginx so zu konfigurieren, dass es den X-Frame-Options-Header sendet, fügen Sie dies entweder zur http-, server- oder location-Konfiguration hinzu:
add_header X-Frame-Options SAMEORIGIN always;
Sie können den X-Frame-Options-Header auf DENY setzen mit:
add_header X-Frame-Options DENY always;
Konfigurieren von IIS
Um IIS so zu konfigurieren, dass es den X-Frame-Options-Header sendet, fügen Sie dies Ihrer Web.config-Datei der Website hinzu:
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
Für weitere Informationen siehe den Microsoft Support-Artikel zur Konfiguration mit der IIS Manager-Oberfläche.
Konfigurieren von HAProxy
Um HAProxy so zu konfigurieren, dass es den X-Frame-Options-Header sendet, 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
Konfigurieren von Express
Um X-Frame-Options mit Helmet auf SAMEORIGIN zu setzen, fügen Sie folgendes zur Konfiguration Ihres Servers hinzu:
import helmet from "helmet";
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Spezifikationen
| Specification |
|---|
| HTML> # the-x-frame-options-header> |
Browser-Kompatibilität
Loading…