X-Frame-Options

Der HTTP-Header X-Frame-Options sorgt dafür, dass deine Website nicht einfach in fremde Seiten eingebettet werden kann – und schützt so vor Angriffen wie Clickjacking oder UI-Spoofing.

Das steckt im Detail hinter X-Frame-Options

X-Frame-Options gehört zu den älteren, aber immer noch weit verbreiteten Sicherheitsmechanismen im Web. Er wird eingesetzt, um zu kontrollieren, ob und von wem eine Seite in einem <iframe> angezeigt werden darf.

Warum das wichtig ist?

Weil sich mit sogenannten Clickjacking-Angriffen Benutzer:innen täuschen lassen: Eine legitime Website wird in ein unsichtbares iFrame gepackt, und darüber werden Klicks oder Eingaben auf manipulierte Inhalte geleitet – ohne dass man es sieht.

Beispiel:
Ein eingebettetes Formular sieht aus wie eine Umfrage, ist in Wahrheit aber eine unsichtbare PayPal-Überweisung.

Die drei Varianten des Headers

X-Frame-Options: DENY

→ Die Seite darf nirgendwo eingebettet werden – weder auf der eigenen noch auf fremden Domains.

X-Frame-Options: SAMEORIGIN

→ Die Seite darf nur auf derselben Domain eingebettet werden – z. B. für Admin-Vorschauen oder interne Tools.

X-Frame-Options: ALLOW-FROM uri` (veraltet)  

→ Theoretisch erlaubte Einbettung von einer bestimmten Domain – wird aber kaum noch unterstützt und ist nicht mehr empfohlen.

X-Frame-Options In der Praxis

Viele Frameworks und CMS setzen standardmäßig DENY – was gut ist, aber auch zu Problemen führen kann. Zum Beispiel, wenn du wie bei SuluCMS im Backend eine Vorschau in einem iFrame brauchst. Die bessere Lösung in solchen Fällen:

X-Frame-Options: SAMEORIGIN

Das erlaubt Einbettungen innerhalb deiner eigenen Domain, blockiert aber alles, was von außen kommt – eine ausgewogene Kombination aus Sicherheit und Flexibilität.

Langfristig ersetzt der CSP-Header frame-ancestors diese Funktion – aber X-Frame-Options bleibt in vielen Fällen der einfachste Weg, sich gegen Einbettungs-Angriffe zu schützen.

View