X-Frame-Options header
Hinweis:
Für umfassendere Optionen als die durch diesen Header angebotenen, siehe die frame-ancestors Direktive in einem Content-Security-Policy Header.
Der HTTP X-Frame-Options Antwort-Header kann verwendet werden um anzuzeigen, ob ein Browser das Dokument in einem <frame>, <iframe>, <embed> oder <object> rendern darf. Websites können dies nutzen, um Clickjacking Angriffe und einige Cross-Site-Leaks zu vermeiden, indem sie sicherstellen, dass ihre Inhalte nicht in andere Sites eingebettet werden.
Wird dieser Header nicht gesendet und hat die Website keine anderen Mechanismen zur Einschränkung des Einbettens implementiert (wie die frame-ancestors CSP-Direktive), wird der Browser anderen Sites erlauben, dieses Dokument einzubetten.
| Header-Typ | Antwort-Header |
|---|
Syntax
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
Direktiven
DENY-
Das Dokument kann in keinem Frame geladen werden, unabhängig von der Herkunft (sowohl das Einbetten aus gleicher als auch aus fremder Herkunft wird blockiert).
SAMEORIGIN-
Das Dokument kann nur eingebettet werden, wenn alle Vorfahren-Frames die gleiche Herkunft wie die Seite selbst haben.
ALLOW-FROM originVeraltet-
Dies ist eine veraltete Direktive. Moderne Browser, die Antwort-Header mit dieser Direktive vorfinden, werden den Header vollständig ignorieren. Der
Content-Security-PolicyHTTP-Header hat eineframe-ancestorsDirektive, die stattdessen verwendet werden sollte.
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 durchgesetzt, wie in den untenstehenden Beispielen angezeigt.
Apache konfigurieren
Um Apache so zu konfigurieren, dass es den X-Frame-Options Header für alle Seiten sendet, 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"
Nginx konfigurieren
Um Nginx so zu konfigurieren, dass der X-Frame-Options Header gesendet wird, fügen Sie dies entweder der 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;
IIS konfigurieren
Um IIS so zu konfigurieren, dass der X-Frame-Options Header gesendet wird, fügen Sie dies zu Ihrer Web.config Datei hinzu:
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
Für weitere Informationen, siehe den Microsoft Support-Artikel zur Einstellung dieser Konfiguration über die IIS-Manager Benutzeroberfläche.
HAProxy konfigurieren
Um HAProxy so zu konfigurieren, dass der X-Frame-Options Header gesendet wird, fügen Sie dies Ihrer Frontend-, Listen- oder Backend-Konfiguration hinzu:
rspadd X-Frame-Options:\ SAMEORIGIN
Alternativ, in neueren Versionen:
http-response set-header X-Frame-Options SAMEORIGIN
Express konfigurieren
Um X-Frame-Options auf SAMEORIGIN mithilfe von Helmet zu setzen, fügen Sie Folgendes zu Ihrer Server-Konfiguration hinzu:
import helmet from "helmet";
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Spezifikationen
| Specification |
|---|
| HTML> # the-x-frame-options-header> |