HTML and CSS Reference
In-Depth Information
Was ist ein Origin?
Ein Origin ist Tupel, bestehend aus »Schema, Host, Port« (
scheme/host/port
). Ein
Beispiel ist
http://google.com
. Das Schema ist hier
http://
, der Host
google.com
und der
implizite Standardport 80. Das Prinzip der Origins spielt bei Web Storage eine große
Rolle, wenn es um den zur Verfügung stehenden Speicherplatz sowie die Sicherheit
geht.
Das Storage-Limit pro Origin wird derzeit von den meisten Browsern einschließlich
WebKit-basierten Browsern mit 5 MByte angegeben. Der Zugriff auf
localStorage
und
webStorage
wird ebenso per Origin bestimmt, d. h., alle Webseiten unterhalb
eines Origins haben Zugriff auf den Web Storage. Durch DNS-Spoofing wird
erreicht, dass ein Angreifer Zugriff auf die Daten des Web Storage bekommt. Um das
zu verhindern, kann das Schema
https://
eingesetzt werden, wodurch DNS-Spoofing
verhindert werden kann.
Web Storage sollte nicht eingesetzt werden, wenn sich mehrere Benutzer Webspei-
cher durch unterschiedliche Pfadnamen unterhalb eines Origins teilen. Beispielsweise
kann der Benutzer von
http://meinserver.de/userA
auf sämtliche Daten des Benutzers
unter
http://meinserver.de/userB
zugreifen, da der Origin in beiden Fällen
http://meinserver.de
ist.
2.6.1
Feature Detection: Darf Web Storage benutzt werden?
Web Storage und damit
sessionStorage
und
localStorage
stehen aktuell auf gängi-
gen Android-basierten Geräten und auf iPhone OS zur Verfügung. Um über diese Gren-
zen hinaus Webseiten zu entwickeln oder einfach aus Gründen der Sicherheit, sollte
jedoch per Feature Detection festgestellt werden, ob Web Storage benutzt werden kann:
function hasSessionStorage()
{
return 'sessionStorage' in window;
};
function hasLocalStorage()
{
return 'localStorage' in window;
};
Falls Sie ohnehin schon Modernizr verwenden:
if (!Modernizr.localstorage)
{
alert ('No localStorage!');
return;
}
...
if (!Modernizr.sessionstorage)