Neue Anwendungen, neue Risiken

HTML5 - Web und lokale Clients verknüpfen

Beschränkt und doch gefährlich

Ob und wie stark das storageChange-Objekt in seiner Wirkung eingeschränkt wird, wird noch diskutiert. So können derzeit nur Skripte mit derselben Funktion sowie von derselben Domain und Port aus das Objekt verwenden. Diese engen Grenzen lassen Probleme mit beliebten Skripten oder einem Wechsel zwischen HTTP- und HTTPS-Verbindungen gar nicht erst aufkommen.

Auch wenn sich die neuen Möglichkeiten für Webentwickler wie ein Traum anhören mögen, könnten sie schnell zum Albtraum werden: Dann nämlich, wenn zwei Fenster auf dieselben Dateien zugreifen und einen Wettlauf darum starten, wer die Daten als erstes korrumpiert (kritischer Wettlauf). Experten streiten deshalb darüber, um das Objekt um einen "Mutex"-Algorithmus (mutual exclusion), der dieses schädliche Ansinnen auf beiden Seiten - Server wie Client - einschränkt, ergänzt werden müsse.

Einer der jüngsten Entwürfe der HTML5-Spezifikation sieht einen Mutex eher als potenzielle Geschwindigkeitsbremse und gibt die Empfehlung ab, mögliche Datenbeschädigungen unter diesen Umständen zuzulassen. Weiter heißt es: "Alternativen, die ohne ein Skript-Lock auf Client-Seite auskommen, werden dringend gesucht."

Derartige Alternativen sind auch notwendig, könnte es andernfalls doch zu bizarren Auswüchsen kommen, wenn mehrere Browser-Fenster gleichzeitig geöffnet sind. Dann liefen zwar verschiedene Instanzen eines Codes parallel, jeder Prozess hätte aber nur Zugriff auf einem einzigen unveränderlichen lokalen Datenbestand.

In der Spezifikation heißt es: "Verschiedene Website-Betreiber, die sich einen Host teilen - beispielsweise mehrere Blogger auf Wordpress.com (Anm. d. Red.) - teilen sich ein localStorage-Objekt. Es gibt kein Feature, den Objektzugriff pfadabhängig zu beschränken." Wieviel Speicherplatz bekommt also jeder einzelne? Lässt sich DNS-Spoofing verhindern? localStorage beantwortet zwar viele Fragen, wirft aber mindestens genauso viele neue auf.