<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Given the pervasiveness of XSS flaws in apps, I would strongly advise against this. It would just be too easy for a dev team to introduce an XSS flaw and then completely blow away the security of whatever is stored in local storage. This doesn’t increase the likelihood of an XSS flaw (which is already really high), but significantly increases the impact.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>-Dave<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> owasp-leaders-bounces@lists.owasp.org [mailto:owasp-leaders-bounces@lists.owasp.org] <b>On Behalf Of </b>Christian Papathanasiou<br><b>Sent:</b> Thursday, December 05, 2013 5:31 AM<br><b>To:</b> Eoin<br><b>Cc:</b> owasp-leaders@lists.owasp.org<br><b>Subject:</b> Re: [Owasp-leaders] HTML5 local storage..<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>No, simply as a alternative to transmitting cookies over the wire and leveraging the same origin policy aspect of local storage to protect against CSRF - two birds one stone :-)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Logout will be as per usual 30 minute expiry etc<br><br>Sent from my iPhone<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br>On 5 Dec 2013, at 10:25, Eoin <<a href="mailto:eoin.keary@owasp.org">eoin.keary@owasp.org</a>> wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal>get you .....but storing cookies with the view to not having to log in again on the next visit to the application?<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>On 5 December 2013 10:16, Christian Papathanasiou <<a href="mailto:christian.papathanasiou@owasp.org" target="_blank">christian.papathanasiou@owasp.org</a>> wrote:<o:p></o:p></p><div><div><p class=MsoNormal>Hey Eoin, <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Not a certificate store, rather using it to store session id's that I would otherwise/traditionally  transmit as a cookie. <br><br>Basically if site is immune from XSS, would HTML5 local storage be a good place to store your session cookies in. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Reading between the lines it appears to have benefits listed below (always assuming site is XSS immune)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><br>Sent from my iPhone<o:p></o:p></p></div><div><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br>On 5 Dec 2013, at 10:08, Eoin <<a href="mailto:eoin.keary@owasp.org" target="_blank">eoin.keary@owasp.org</a>> wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><div><p class=MsoNormal>Would a weak browser (IE6) infected with Malware be an issue here?<o:p></o:p></p></div><div><p class=MsoNormal>Certificate stores / Keystores have passwords etc but local storage does not.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>On 5 December 2013 10:06, Eoin <<a href="mailto:eoin.keary@owasp.org" target="_blank">eoin.keary@owasp.org</a>> wrote:<o:p></o:p></p><div><div><p class=MsoNormal>Hi Chris,<o:p></o:p></p></div><div><p class=MsoNormal>What your saying is using local storage as a "certificate store" sorta affair? Like a keystore for auth/authz when using an app?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><div><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>On 5 December 2013 09:56, Christian Papathanasiou <<a href="mailto:christian.papathanasiou@owasp.org" target="_blank">christian.papathanasiou@owasp.org</a>> wrote:<o:p></o:p></p><p class=MsoNormal>Hi everyone,<br><br>Assuming a domain does all the right stuff regarding XSS protection (white listing, output encoding, CSP etc etc) could HTML 5 local storage perhaps be a very interesting candidate for storing session cookies and performing authentication/authorization?<br><br>Reading between the lines the following key benefits stood out for me:<br><br>Local storage token/cookie not transmitted over  the wire hence minimising opportunity of cookie theft from sniffing<br><br>Same origin policy means that local storage cookie will be protected/relatively kimmune from CSRF attacks and hence no additional effort required to CSRF tokenize forms etc.<br><br>Of course, if your site has XSS then local storage cookies can be siphoned off or even injected but assuming for the time being that the site is immune to XSS and hence the lack of http only doesn't really matter and everything going over SSL by default (hence secure flag doesn't really matter) would the above benefits hold true?<br><br>Of course the user can mangle the local storage token/cookie but that would  in effect not really be different to doing the same with burp proxy etc as long as token/cookie is sufficiently random complex etc and unable to infer other peoples session tokens for horizontal or vertical priv esc.<br><br>Am I missing something fundamental  from a security perspective here? :-)<br><br>Finally are there any local storage authentication/authorization frameworks out there?<br><br>Many thanks & kind regards,<br>Christian Papathanasiou.<br><br><br>_______________________________________________<br>OWASP-Leaders mailing list<br><a href="mailto:OWASP-Leaders@lists.owasp.org" target="_blank">OWASP-Leaders@lists.owasp.org</a><br><a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a><o:p></o:p></p></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p></div></div><p class=MsoNormal><span style='color:#888888'>-- <br>Eoin Keary<br>OWASP Member<br><a href="https://twitter.com/EoinKeary" target="_blank">https://twitter.com/EoinKeary</a><o:p></o:p></span></p><div><p class=MsoNormal><span style='color:#888888'><o:p> </o:p></span></p></div></div></div><p class=MsoNormal><br><br clear=all><br>-- <br>Eoin Keary<br>OWASP Member<br><a href="https://twitter.com/EoinKeary" target="_blank">https://twitter.com/EoinKeary</a><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></blockquote></div></div></div></div><p class=MsoNormal><br><br clear=all><br>-- <br>Eoin Keary<br>OWASP Member<br><a href="https://twitter.com/EoinKeary" target="_blank">https://twitter.com/EoinKeary</a><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></blockquote></div></body></html>