X-Frame-Options header

Hinweis: Für umfassendere Optionen, als sie dieser Header bietet, siehe die frame-ancestors-Direktive im Content-Security-Policy-Header.

Der HTTP X-Frame-Options Antwort-Header kann verwendet werden, um anzuzeigen, 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 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 Antwort-Header
Verbotener Anfrage-Header Nein

Syntax

Für X-Frame-Options gibt es zwei mögliche Direktiven:

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, fehlschlagen, selbst wenn sie von derselben Seite geladen wird. Andererseits, wenn Sie SAMEORIGIN angeben, können Sie die Seite weiterhin in einem Frame verwenden, solange die einbettende Seite dieselbe ist wie die, die die Seite liefert.

DENY

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

SAMEORIGIN

Die Seite kann nur angezeigt werden, wenn alle übergeordneten Frames denselben Ursprung wie die Seite selbst haben.

ALLOW-FROM origin Veraltet

Diese Direktive ist veraltet. Moderne Browser, die auf Antwort-Header mit dieser Direktive stoßen, ignorieren den Header vollständig. Der Content-Security-Policy HTTP-Header enthält eine frame-ancestors-Direktive, die Sie stattdessen verwenden sollten.

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

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 Website 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 zur Konfiguration über die IIS Manager-Benutzeroberfläche.

Konfiguration von HAProxy

Um HAProxy so zu konfigurieren, dass der X-Frame-Options-Header gesendet wird, fügen Sie dies zu 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 zur Server-Konfiguration hinzu:

js
import helmet from "helmet";

const app = express();
app.use(
  helmet({
    xFrameOptions: { action: "sameorigin" },
  }),
);

Spezifikationen

Specification
HTML
# the-x-frame-options-header

Browser-Kompatibilität

Siehe auch