X-Frame-Options header
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Hinweis:
Umfassendere Möglichkeiten als dieser Header bietet die Direktive frame-ancestors in einem Content-Security-Policy-Header.
Der HTTP-Response-Header X-Frame-Options gibt an, ob ein Browser das Dokument in einem <frame>, <iframe>, <embed> oder <object> darstellen darf. Websites können damit Clickjacking-Angriffe und bestimmte Cross-Site-Leaks verhindern, indem sie sicherstellen, dass ihre Inhalte nicht in andere Websites eingebettet werden.
Wenn dieser Header nicht gesendet wird und die Website keine anderen Mechanismen zur Einschränkung der Einbettung implementiert hat (etwa die CSP-Direktive frame-ancestors), erlaubt der Browser anderen Websites, das Dokument einzubetten.
| Header-Typ | Response-Header |
|---|
Syntax
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
Direktiven
DENY-
Das Dokument kann unabhängig vom Ursprung in keinem Frame geladen werden. Sowohl die Einbettung mit gleichem als auch mit anderem Ursprung wird blockiert.
SAMEORIGIN-
Das Dokument kann nur eingebettet werden, wenn alle übergeordneten Frames denselben Ursprung wie die Seite selbst haben.
ALLOW-FROM origin-
Diese Direktive ist veraltet. Moderne Browser ignorieren Response-Header mit dieser Direktive vollständig. Verwenden Sie stattdessen die Direktive
frame-ancestorsdes HTTP-HeadersContent-Security-Policy.
Beispiele
Warnung:
Das Festlegen von X-Frame-Options innerhalb des Elements <meta> (z. B. <meta http-equiv="X-Frame-Options" content="deny">) hat keine Wirkung. X-Frame-Options wird nur über HTTP-Header durchgesetzt, wie die folgenden Beispiele zeigen.
Apache konfigurieren
Damit Apache den Header X-Frame-Options für alle Seiten sendet, fügen Sie Folgendes zur Konfiguration Ihrer Website hinzu:
Header always set X-Frame-Options "SAMEORIGIN"
Damit Apache X-Frame-Options auf DENY setzt, fügen Sie Folgendes zur Konfiguration Ihrer Website hinzu:
Header set X-Frame-Options "DENY"
Nginx konfigurieren
Damit Nginx den Header X-Frame-Options sendet, fügen Sie Folgendes zu Ihrer http-, server- oder location-Konfiguration hinzu:
add_header X-Frame-Options SAMEORIGIN always;
Sie können den Header X-Frame-Options wie folgt auf DENY setzen:
add_header X-Frame-Options DENY always;
IIS konfigurieren
Damit IIS den Header X-Frame-Options sendet, fügen Sie Folgendes zur Datei Web.config Ihrer Website hinzu:
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
Weitere Informationen finden Sie im Microsoft-Supportartikel zum Festlegen dieser Konfiguration über die Benutzeroberfläche des IIS-Managers.
HAProxy konfigurieren
Damit HAProxy den Header X-Frame-Options sendet, fügen Sie Folgendes zu Ihrer Frontend-, Listen- oder Backend-Konfiguration hinzu:
rspadd X-Frame-Options:\ SAMEORIGIN
In neueren Versionen können Sie alternativ Folgendes verwenden:
http-response set-header X-Frame-Options SAMEORIGIN
Express konfigurieren
Um X-Frame-Options mithilfe von Helmet auf SAMEORIGIN zu setzen, fügen Sie Folgendes zu Ihrer Serverkonfiguration hinzu:
import helmet from "helmet";
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Spezifikationen
| Spezifikation |
|---|
| HTML> # the-x-frame-options-header> |