Information Technology Reference
In-Depth Information
In der Spezifikation wird der
sessionStorage
dem top-level browsing context zu-
gewiesen. Vereinfacht dargestellt, kann man diesen Kontext als ein geöffnetes
Browser-Fenster beziehungsweise einen geöffneten Tab (ein Unterfenster) in
einem Browser-Fenster verstehen. Einen untergeordneten Kontext stellt zum
Beispiel ein
iFrame
innerhalb eines HTML-Dokuments dar. Der Browser muss
außerdem sicherstellen, dass jede Webseite nur Zugriff auf ihren eigenen
ses-
sionStorage
hat und nicht die Inhalte anderer Webseiten auslesen kann. Ist die-
ser Kontext nicht mehr erreichbar (das Browser-Fenster oder der Tab wurde
geschlossen), so kann der Browser die dazugehörigen Daten unwiederbring-
lich löschen.
8.2.3 »localStorage«
Im Unterschied zum
sessionStorage
bezieht sich der
localStorage
nur auf die
Herkunft der Webseite und nicht zusätzlich auf den Browser-Kontext. Die Her-
kunft, in der Spezifikation als origin bezeichnet, wird aus der URL abgeleitet
und setzt sich aus dem verwendeten Schema in Kleinbuchstaben (zum Beispiel
http
), dem Servernamen (ebenfalls in Kleinbuchstaben) und dem Port zusam-
men. Sollte der Port nicht explizit angegeben sein, wird der Standard-Port für
das verwendete Schema verwendet (für HTTP zum Beispiel 80). Die Herkunft
für die URL
http://www.google.com/about
besteht aus den drei Werten
http
,
www
.google.com
und
80
.
Das bedeutet, dass die
Herkunft
in der soeben beschriebenen Form für alle
Webseiten eines Servers gleich ist. Sicherheitstechnisch bedenklich ist das bei
Webhosting-Formen, die alle Benutzer unter einer Domain anbieten, wie zum
Beispiel der freie Dienst von Google,
sites.google.com
. Da sich die unterschied-
lichen Homepages alle im Unterverzeichnis
http://sites.google.com/site/
befin-
den, haben unterschiedliche Benutzer Zugriff auf den gleichen
localStorage
.
Die Spezifikation schlägt vor, dass in solchen Umgebungen auf die Verwendung
von
localStorage
verzichtet werden sollte.
8.2.4 Das»Storage-Event«
Bei jeder Veränderung der Daten im Storage wird das »Storage-Event« aus-
gelöst. Das Storage-Event bietet lesenden Zugriff auf den Schlüssel, den Wert
vor und nach der Veränderung, die URL des Scripts, das die Veränderung ver-
anlasste, und einen Verweis auf das Storage-Objekt, in dem die Veränderung
durchgeführt wurde.