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:

http
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 eine frame-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:

apacheconf
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:

apacheconf
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:

nginx
add_header X-Frame-Options SAMEORIGIN always;

Sie können den X-Frame-Options Header auf DENY setzen, indem Sie:

nginx
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:

xml
<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:

js
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

Siehe auch