MyOOS Community Blog

X-Frame-Options-Header

In meinem letzten Blogbeitrag habe ich über Content-Security-Policy für unseren VR-Commerce Shop geschrieben. In der nächsten MyOOS Version 2.4.64 haben wir den Content-Security-Policy Header im Shop eingebaut. Für den anschließenden Test freue ich mich über Tester. im heutigen Blogbeitrag beschäftigen wir uns mit dem X-Frame-Options-Header

Was ist ein X-Frame-Options-Header

Ein X-Frame-Options-Header ist ein HTTP-Antwort-Header, der angibt, ob eine Webseite in einem <frame>, <iframe>, <embed> oder <object> Element dargestellt werden darf oder nicht. Dieser Header kann verwendet werden, um Clickjacking-Angriffe zu vermeiden, indem sichergestellt wird, dass die eigene Webseite nicht in andere Webseiten eingebettet wird. Es gibt drei mögliche Werte für diesen Header: DENY, SAMEORIGIN und ALLOW-FROM.

Was ist Clickjacking?

Clickjacking ist ein Angriff, bei dem ein Benutzer dazu gebracht wird, auf ein Webseitenelement zu klicken, das unsichtbar oder als ein anderes Element getarnt ist. Dies kann dazu führen, dass Benutzer unwissentlich Malware herunterladen, bösartige Webseiten besuchen, Anmeldeinformationen oder sensible Informationen bereitstellen, Geld überweisen oder Produkte online kaufen.

Clickjacking basiert auf der Überlagerung von mehreren transparenten oder undurchsichtigen Schichten, die die ursprüngliche Benutzeroberfläche verdecken. Der Benutzer denkt, dass er auf die oberste Schicht klickt, aber in Wirklichkeit klickt er auf die darunter liegende Schicht, die eine andere Aktion auslöst.

Clickjacking kann auf jeder Plattform auftreten, die mit dem Internet verbunden ist: mobile Geräte, Tablets, Desktop-PCs und Laptops. Clickjacking kann verschiedene Ziele haben, wie z.B. das Stehlen von Bankdaten, das Erzeugen von gefälschten Likes oder Followern auf sozialen Medien oder das Auslösen von 1-Click-Bestellungen bei Amazon.

Um sich vor Clickjacking zu schützen, können Webanwendungen einen Header namens “X-Frame-Options” senden, der dem Browser anzeigt, ob die Webseite in einem <frame>, <iframe>, <embed> oder <object> Element dargestellt werden darf oder nicht. Dieser Header kann die Werte “DENY”, “SAMEORIGIN” oder “ALLOW-FROM” haben. Außerdem können Benutzer Browser-Erweiterungen installieren, die Clickjacking erkennen und verhindern können.

Wie kann ich mich vor Clickjacking schützen?

Es gibt einige Möglichkeiten, wie du dich vor Clickjacking schützen kannst. Hier sind einige Tipps, die du e befolgen kannst:

Das MyOOS Projekt und X-Frame-Options Header

Unser Projekt verwendet für den Shop und den folgenden Code

Header always set X-Frame-Options "SAMEORIGIN"

Der Wert “SAMEORIGIN” bedeutet, dass die Webseite nur in einem Frame dargestellt werden darf, wenn die Seite, die den Frame enthält, vom gleichen Ursprung ist wie die Seite, die im Frame dargestellt wird. Du kannst auch andere Werte wie “DENY” oder “ALLOW-FROM” verwenden, je nachdem, wie viel Flexibilität Du benötigst.

Kann ich mehrere Werte für den X-Frame-Optionen Header angeben?

Nein, du kannst leider nicht mehrere Werte für den X-Frame-Optionen Header angeben. Dieser Header akzeptiert nur einen einzelnen Wert, der für alle Anfragen gilt. Wenn du mehrere Werte angibst, wird der Header ignoriert oder es wird ein Fehler ausgelöst.

Wenn du mehr Kontrolle darüber haben möchtest, welche Webseiten deine Inhalte in einem Frame darstellen dürfen, kannst du stattdessen den Content-Security-Policy Header verwenden. Dieser Header hat eine frame-ancestors Direktive, die es dir erlaubt, eine Liste von Quellen anzugeben, die deine Inhalte einbetten dürfen. Zum Beispiel kannst du den folgenden Header senden, um nur Webseiten von der gleichen Quelle oder von 4 zu erlauben:

Content-Security-Policy: frame-ancestors 'self' 4;
Die mobile Version verlassen