X-Frame-Options

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

Warnung: Anstatt dieses Headers verwenden Sie 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 eine Seite in einem <frame>, <iframe>, <embed> oder <object> rendern darf. Websites können dies nutzen, um Clickjacking-Angriffe zu vermeiden, indem sie sicherstellen, dass ihre Inhalte nicht in andere Seiten 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 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 beim Laden von anderen Seiten fehlschlagen, sondern auch beim Laden von derselben Seite. Wenn Sie hingegen SAMEORIGIN angeben, können Sie die Seite weiterhin in einem Frame verwenden, solange die Seite, die sie in einem Frame einfügt, dieselbe ist wie diejenige, die die Seite bereitstellt.

DENY

Die Seite kann in keinem Frame angezeigt werden, unabhängig von der Seite, die es versucht.

SAMEORIGIN Veraltet

Die Seite kann nur angezeigt werden, wenn alle übergeordneten Frames 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 hat 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 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 zur 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 zu 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 zur Datei Web.config Ihrer Website 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 zur Einstellung 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 Frontend-, Listener- 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 zu setzen, verwenden Sie Helmet und fügen Sie das Folgende zu Ihrer Server-Konfiguration 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