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:

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

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 zur Konfiguration Ihrer Site 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 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 folgendes verwenden:

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 zur Web.config-Datei Ihrer Site hinzu:

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

js
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

Siehe auch