Mehr Sicherheit mit HTML5

Sicher mit dem Sandbox-Attribut

10.1.2011 von Anna Kobylinska und Filipe Pereira Martins

Mit dem in HTML 5 eingeführten sandbox-Attribut können Sie nun externen Code in eingebundenen <iframe>-Elementen in Quarantäne stecken.

ca. 3:45 Min
Ratgeber
  1. Sicher mit dem Sandbox-Attribut
  2. Fazit
internet, webdesign, html 5, sandbox, iframe
internet, webdesign, html 5, sandbox, iframe
© Internet Magazin

Ein <iframe>-Element in einer Webseite bindet Inhalte aus einer externen Dokumentquelle ein. Beim Zugriff auf eine Webseite liefert der Browser alle Inhalte ohne weitere Nachfragen an den Benutzer. Dieses Verhalten im Zusammenspiel mit einem <iframe>-Element kann in der aktuellen <iframe>-Implementierung gemäß HTML 4.1 einen automatischen Download bösartiger Malware-Inhalte zur Folge haben. Das sandbox-Attribut des <iframe>-Tags in HTML 5 soll die Sicherheitslücke schließen.Viele Webseiten finanzieren sich durch Werbung, die sie aus externen Quellen mittels JavaScript oder <iframe>-Tags einbinden. Als Website-Betreiber haben Sie keinen Einfluss darauf, was in dem Werbenetzwerk wirklich vor sich geht, zumal sich dort hunderte oder gar tausende verschiedener Agenturen tummeln.Es reicht, wenn sich eines der beteiligten Unternehmen einen Ausrutscher leistet, und schon ist das ganze Werbe-Netzwerk kompromittiert und kann über <iframe>- Elemente in Ihren Webseiten Ihre Besucher unbemerkt mit Malware verseuchen, was ein schlechtes Licht auf Sie wirft.Dafür bedarf es nicht einmal einer Sicherheitslücke auf Ihrem Webserver, denn Sie haben ja die <iframe>-Tags selbst eingebaut. Dabei hinterlassen die bösartigen Aktivitäten der Hacker nicht einmal irgendwelche Spuren in den Log-Dateien Ihres Webservers. Die eigentliche Malware liegt ja außerhalb Ihrer Domain. Die Hacker haben Ihnen ja in dem <iframe>-Tag Kuckucksei untergeschoben.

<iframes> mit sandbox-Attribut

Die Web Hypertext Application Technology Working Group (WHATWG) und das W3C, die gemeinsam an dem HTML5-Entwurf arbeiten, haben sich inzwischen ein neues Attribut für das <iframe>-Element einfallen lassen: sandbox.Das sandbox-Attribut soll Ihnen helfen, externe Inhalte, die Sie in Ihre Webseite einbinden müssen, um Daten wie etwa Werbung zu beziehen, förmlich in ihre Schranken zu weisen und vom Ausführen potenziell sicherheitskritischer Operationen abzuhalten. Alles, was Sie hierzu benötigen, ist dieser Code:

<iframe sandbox src="http://www.
extern.de/nicht-vertrauenswuerdig.
html"></iframe>

und schon sperren Sie in allen Browsern mit Unterstützung für das sandbox-Attribut das Ausführen sicherheitskritischer Operationen aus dem betreffenden <iframe>- Element heraus. Ein Browser mit Unterstützung für das sandbox-Attribut muss beim Antreffen eines <iframe>-Elementes mit der sandbox-Eigenschaft Formulare, Skripte und Plugins deaktivieren.Die restriktive Standardeinstellung können Sie liberaler auslegen, indem Sie bestimmte Berechtigungen wieder explizit freischalten. Das sandbox-Attribut nimmt als Wert eine unsortierte Liste von Freiraum-getrennten Symbolen entgegen. Die zulässigen Werte sind allow-same-origin, allow-top-navigation, allow-forms und allow-scripts.Mittels allow-forms und allow-scripts können Sie Formulare und Skripte aus dem <iframe>-Element heraus verfügbar machen. Zum Beispiel mittels:

<iframe sandbox="allow-scripts
allow-forms" src="http://www.extern.
de/nicht-vertrauenswuerdig.html"></iframe>

erlauben Sie das Ausführen beliebiger Skripte und das Abschicken von Web-Formularen aus dem betreffenden <iframe>- Element heraus. Der Browser wird allerdings nach wie vor das Erzeugen von Popups durch Skripte unterdrücken.Die Beschränkung auf einen eindeutigen Ursprung können Sie mit

allow-same-origin

aufheben. Der Webbrowser muss dafür sorgen, dass Verknüpfungen aus einem <iframe>-Element heraus, welches über die sandbox-Eigenschaft verfügt, nicht auf Inhalte außerhalb dieses Elementes zugreifen können. Mit

allow-topnavigation

erlauben Sie den Inhalten des betreffenden <iframe>-Elementes, durch den Browsing-Kontext der obersten Ebene der Webseite zu navigieren und auf seine DOM-Objekte zuzugreifen.

Ein neuer MIME-Typ

Um die Funktionalität des sandbox-Attributs vollständig auszureizen, sind Sie gut beraten, die betreffenden Dokumente unter Verwendung des MIME-Typs

text/html-sandboxed

bereitzustellen.

internet, webdesign, html 5, sandbox, iframe
Der kostenlose Web- Dienst VirusTotal kann Web-Dokumente auf verdächtige Aktivitäten hin überprüfen (virustotal.com/de/).
© Internet Magazin

Wenn Sie dem Benutzer ein Dokument mit diesem MIME-Typ servieren, werden Ihre Sicherheitsvorgaben respektiert (sofern der Browser das sandbox-Attribut nutzt). Nun könnte der Benutzer aber versuchen, Ihren sandbox-Schutz zu umgehen, indem er zu dem betreffenden Dokument direkt navigiert. Auch daran haben die Erfinder der Spezifikation gedacht. Sollte ein Besucher direkt auf das <iframe>-Element zugreifen wollen, initiiert der Browser ein Download der Datei im Quelltext anstatt sie auszuführen.Dieser Teil der Implementierung funktioniert bereits heute in allen aktuellen Webbrowsern; die Browser schicken sich an, den Quelltext des Dokumentes herunterzuladen statt auszuführen. Nur Google Chrome unterstützt das Rendern von Dokumenten vom MIME-Typ text/html-sandboxed innerhalb eines <iframe>- Elementes.

Mit Vorsicht zu genießen

Das sandbox-Attribut ist aber kein Allheilmittel und bringt nebenbei auch eigene Stolperfallen mit. Wenn Sie für das sandbox- Attribut eines <iframe>-Elementes sowohl den Schlüssel allow-scripts als auch allow-same-origin setzen, können Sie ungeahnt eine Sicherheitslücke eröffnen. Sollte die Webseite, welche das <iframe>-Element beinhaltet, denselben Ursprung wie die darin eingebettete Webseite aufweisen, könnte die Letztere das sandbox-Attribut von dem <iframe>-Element entfernen.

Unterstützung durch Webbrowser

Bisher rühmt sich allerdings nur eine einzige Webbrowserfamilie der Unterstützung für das sandbox-Attribut in HTML 5: Webkit- Browser (einschließlich Google Chrome bereits ab der Version 4.x.) Wenn sich auch die anderen führenden Browser-Hersteller bequemen würden, diese wenig glanzvolle, dafür aber sicherheitskritische Innovation von HTML 5 endlich mal vollständig zu implementieren, ließen sich <iframe>-Elemente gezielter einsetzen. Vor allem Mozilla weigert sich, dem sandbox-Attribut die gehörige Entwicklungszeit zu widmen. Was Browser-Hersteller vernachlässigen, müssen Website-Betreiber mit Sorgfalt und Wachsamkeit kompensieren.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.