Adobe Air (wiwobooks.com Release)
einschleichen, ist insbesondere die lokale Sandbox nochmals nach der Art des Zugriffs unterteilt. Tabelle 11.2 bietet einen Überblick über die Zugriffsmöglichkeiten zwischen den Sicherheits-Sandboxen.
Zugriff von
application local-trusted local-with-filesystem
Zugriff auf
application local-trusted local-withlocal-withremote filesystem networking x x x x x x x x x
local-with-networking x x remote x
Tabelle 11.2 Zugriffsmöglichkeiten zwischen den Sicherheits-Sandboxen
Wie Sie sehen, kann von der Anwendungs-Sicherheits-Sandbox ( application) aus auf alle anderen Sandboxen zugegriffen werden. Durch den Administrator explizit als vertrauenswürdig eingestufte lokale Inhalte (local-trusted) können auf andere lokale Inhalte auf dem Computer (local-with-filesystem) sowie auf das Internet (remote) zugreifen, nicht aber auf Inhalte der Anwendungs-SicherheitsSandbox oder auf Inhalte von local-with-networking etc.
11.2 Anwendungs-Sicherheits-Sandbox
Nur Dateien innerhalb der Anwendungs-Sicherheits-Sandbox, also innerhalb des Installationsverzeichnisses, können auf die AIR APIs zugreifen. So können beispielsweise lediglich Inhalte im Anwendungsverzeichnis oder in einem seiner Unterverzeichnisse mithilfe der AIR-Klasse FileStream auf das Dateisystem zugreifen. Daraus folgt unmittelbar, dass Sie alle Programmlogik, die Ihr Programm als Desktopanwendung steuern soll, innerhalb des Anwendungsverzeichnisses unterbringen müssen – das entspricht dem, was man erwartet. Besondere Vorsicht ist jedoch mit Inhalten geboten, die in das Anwendungsverzeichnis eingeschleust werden könnten.
11.2.1 Restriktionen für HTML-/JavaScript-Inhalte der AnwendungsSandbox
Flash-basierte Inhalte (also . swf-Dateien) verfügen bereits automatisch über einen Mechanismus, der verhindert, dass der Hauptinhalt von nachgeladenem Inhalt ohne dessen explizite Freigabe gesteuert wird. Anders sieht die Sache bei HTMLund JavaScript-Inhalten aus, die bekanntlich über WebKit bzw. die HTMLLoader - Klasse in AIR-Anwendungen eingefügt werden. Da HTML-Inhalt anders als .swf- Dateien nicht vorkompiliert, sondern interpretiert wird, müssen HTML- und JavaScript-Inhalte besonderen Sicherheitsmechanismen unterworfen werden. So ist in nachgeladenen JavaScript-Inhalten die dynamische Umwandlung von Text (Zeichenketten) in Quelltext (Programmcode) eingeschränkt. Es existiert, wie Sie vielleicht bereits wissen, daher in JavaScript die Möglichkeit, mithilfe der Eigenschaft innerHTML eines DOM-Elements diesem eine Zeichenkette als Inhalt zu übergeben. Das wiederum eröffnet die theoretische Möglichkeit, schadhaften JavaScript-Code in die Anwendung einzuschleusen.
Daher ist in AIR die Verwendung von Methoden zur dynamischen Erstellung von Inhalten ab dem Zeitpunkt beschränkt, zu dem die HTML-Seitenstruktur der Anwendung in der Anwendungs-Sicherheits-Sandbox geladen ist und die JavaScript onload -Ereignisbehandlungsroutine abgearbeitet wurde.
Warum so kompliziert?
Das Sicherheitskonzept innerhalb von AIR-Anwendungen erscheint auf den ersten Blick etwas sperrig. Warum macht man einen Unterschied, wann der JavaScript-Code geladen ist, und untersagt nicht JavaScript grundsätzlich die Ausführung von Text als Quelltext? Die Antwort ist recht einfach und leicht nachzuvollziehen: Das würde die Bemühungen zunichtemachen, mit AIR bereits vorliegende JavaScript-Inhalte nutzen zu können, und eine überaus hohe Hürde für Ajax-Entwickler beim Einstieg in AIR bedeuten.
Daher geht AIR davon aus, dass die Entwickler wissen, was sie tun, wenn sie HTML- und JavaScript-Inhalte direkt in eine Anwendung einbeziehen, und erlaubt dort die dynamische Umwandlung von Text in Quelltext während des Aufbaus der Seite. Es überlässt es also den Entwicklern, sich der Vertrauenswürdigkeit dieser Inhalte selbst zu versichern. AIR trägt auf diese Weise auch den zahlreichen Ajax-Frameworks Rechnung, die in der Web 2.0-Szene weitverbreitet sind und die je nach Komplexität des Inhalts darauf angewiesen sein könnten, während des Aufbaus der Seite und/oder innerhalb des onload - Ereignis-Listeners Text in Quelltext umzuwandeln.
Durch die Beschränkung solcher Funktionen nach dem Laden und Aufbau der Seite schiebt AIR Skripting-Attacken einen Riegel vor und verhindert so das Einschleusen von schadhaftem JavaScript-Code z. B. über Eingabefelder oder
Weitere Kostenlose Bücher