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
:
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 eineframe-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:
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:
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:
add_header X-Frame-Options SAMEORIGIN always;
Sie können den X-Frame-Options
-Header auf DENY
setzen, indem Sie:
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:
<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:
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