Der X-Frame-Options HTTP-Antwort-Header ist eine entscheidende Sicherheitsmaßnahme, die entwickelt wurde, um Benutzer vor Clickjacking-Angriffen zu schützen. Clickjacking, auch bekannt als UI-Redressing-Angriff, verleitet Benutzer dazu, auf etwas anderes zu klicken, als sie wahrnehmen, oft indem ein bösartiger transparenter Iframe über eine legitime Webseite gelegt wird.
Durch das Setzen des X-Frame-Options-Headers kann ein Webserver deklarieren, ob ein Browser eine Seite in einem <frame>, <iframe>, <embed> oder <object> rendern darf. Dies verhindert, dass dein Inhalt auf anderen Websites eingebettet wird, und mindert so das Risiko von Clickjacking, bei dem ein Angreifer versuchen könnte, Benutzer dazu zu bringen, Aktionen auf deiner Website ohne deren volles Wissen auszuführen.
Es gibt drei primäre Direktiven für X-Frame-Options:
DENY: Die Seite kann in keinem Frame angezeigt werden, unabhängig von der Website, die dies versucht. Dies ist die sicherste Option.SAMEORIGIN: Die Seite kann nur in einem Frame desselben Ursprungs wie die Seite selbst angezeigt werden.ALLOW-FROM uri: Die Seite kann nur in einem Frame des angegebenen Ursprungsuriangezeigt werden. (Hinweis: Diese Direktive ist veraltet und wird von modernen Browsern nicht unterstützt; verwende stattdessen Content-Security-Policy'sframe-ancestorsfür eine granularere Kontrolle).
Wenn du beispielsweise X-Frame-Options: DENY zu den HTTP-Antworten deines Servers hinzufügst, stellst du sicher, dass keine andere Website die Seiten deiner Anwendung einbetten kann, und schützt deine Benutzer so vor bösartigen Overlays und unbeabsichtigten Aktionen.