11.07.2015 Views

Client-Side Storage in Web Applications

Client-Side Storage in Web Applications

Client-Side Storage in Web Applications

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

storage should be trusted, as a malicious user may access the data (e.g., by us<strong>in</strong>gChrome’s Developer Tools) and manipulate it as much as s/he wants [15]. Other security-relatedconcerns are DNS spoof<strong>in</strong>g attacks (preventable by us<strong>in</strong>g TLS and certificates);cross-directory attacks, i.e., the usage of client-side storage mechanisms onshared-orig<strong>in</strong> websites (e.g., http://xxxxxxx.blogspot.com); both SQL<strong>in</strong>jection attacks (always use prepared statements) and JavaScript <strong>in</strong>jection attacks(XSS); and, of course, the risk of poor-quality implementations that could potentiallyresult <strong>in</strong> <strong>in</strong>formation spoof<strong>in</strong>g [10, 11, 17].3.6 SummaryThis section gave an overview of the three HTML5 client-side storage mechanisms:<strong>Web</strong> <strong>Storage</strong>, <strong>Web</strong> SQL Database, and Indexed Database API (IndexedDB). InTable 5, the mechanisms are compared aga<strong>in</strong>st a set evaluation criteria to give a quickunderstand<strong>in</strong>g and an overview of their differences.Table 5. Comparison of HTML5 client-side storage mechanisms.<strong>Client</strong>-sidestorageStandardizationMa<strong>in</strong>featuresSupporteddata types<strong>Storage</strong>spaceBrowsersupport<strong>Web</strong> <strong>Storage</strong>W3C, CandidateRecommendation,December2011simple keyvaluepair data,no duplicatevalues for a keystr<strong>in</strong>g(<strong>in</strong>clud<strong>in</strong>g str<strong>in</strong>gserializedJSON)5 MB per orig<strong>in</strong>(recommendation,can be<strong>in</strong>creased)Chrome 4.0+Firefox 3.5+IE 8.0+Opera 10.5+Safari 4.0+Android 2.1+iOS Safari 3.2+<strong>Web</strong> SQLDatabaseW3C, Work<strong>in</strong>gGroup Note,November 2010relational database(SQLite),uses a variant ofSQL, supportstransactions andcallbacks, <strong>in</strong>cludessynchronousand asynchronousAPIsmany(SQL datatypes)5 MB per orig<strong>in</strong>(recommendation,can be<strong>in</strong>creased)Chrome 4.0+Firefox —IE —Opera 10.5+Safari 3.1+Android 2.1+iOS Safari 3.2+(deprecateds<strong>in</strong>ce November18, 2010)IndexedDBW3C, Work<strong>in</strong>gDraft, May 2012<strong>in</strong>dexed andhierarchical keyvaluepair data,duplicate valuesfor a key, <strong>in</strong>dexes,supportstransactions andcallbacks, <strong>in</strong>cludessynchronousand asynchronousAPIsmany(e.g., JSON,array, str<strong>in</strong>g,and date)50 MB perorig<strong>in</strong> (Firefox,can be <strong>in</strong>creased)Chrome 11.0+Firefox 4.0+IE 10.0+Opera —Safari —Android —iOS Safari —11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!