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:

  • Aktualisiere deinen Browser regelmäßig auf die neueste Version. Die meisten Browser können ihre Nutzer mit der Same-Origin-Policy vor Clickjacking schützen. Dabei erlaubt ein Browser Skripten auf einer Webseite nur dann den Zugriff auf Daten auf einer zweiten Seite, wenn beide Seiten den gleichen Ursprung haben. Der Browser überprüft den Ursprung der Seiten, indem er ihre URI-SCHEMATA, Hostnamen und Portnummern vergleicht.
  • Verwende einen X-Frame-Options-Header für deine Webseiten. Dieser Header kann verhindern, dass Ihre Webseite in einem Frame platziert wird, der für Clickjacking-Angriffe verwendet werden kann. Sie können den Header auf “DENY”, “SAMEORIGIN” oder “ALLOW-FROM” setzen, je nachdem, wie viel Flexibilität Sie benötigen.
  • Installiere dir eine Browser-Erweiterung, die Clickjacking erkennen und blockieren kann. Es gibt einige Erweiterungen, die dir helfen können, verdächtige Frames oder unsichtbare Elemente auf Webseiten zu identifizieren und zu entfernen. Zum Beispiel kannst du NoScript für Firefox oder ScriptSafe für Chrome verwenden.
  • Sei vorsichtig, wenn du auf Links klickst, die dir per E-Mail oder in sozialen Medien geschickt werden. Überprüfe immer die URL der Webseite, bevor du darauf klickst, und vermeide, persönliche oder finanzielle Informationen auf Webseiten einzugeben, denen du nicht vertraust.

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;

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert