设为首页收藏本站language 语言切换
查看: 1571|回复: 0
收起左侧

HTML5本地存储的安全性

[复制链接]
发表于 2013-10-13 10:07:49 | 显示全部楼层 |阅读模式
在HTML5本地存储出现以前,WEB数据存储的方法已经有很多,比如HTTP Cookie,IE userData,Flash Cookie,Google Gears。其实再说细点,浏览WEB的历史记录也算是本地存储的一种方式。到目前位置,HTML5本地存储方式已经获得了广泛的支持,其中支持的浏览器包括:IE 8+、FF 3.5+、Safari 4+、Chrome 4+、Opera 10.5+,手机平台包括iPhone 2+和Android 2+。最新的HTML5本地存储规范文档,可以在线查看
http://dev.w3.org/html5/webstorage/

HTML5本地存储的前身就是Cookie,HTML5的本地存储是使用localStorage对象将WEB数据持久化在本地。相比较而言HTML5本地存储中每个域的存储大小默认是5M,比起Cookie的4K要大的多。而且存储和读取数据的代码极为简练:

存储数据 Window.localStorage.setItem(key,value)
读取数据 Window.localStorage.getItem(key)
删除数据项 Window.localStorage.removeItem(key)
删除所有数据 Window.localStorage.clear()

那么现在我们是否可以简单的认为,HTML5存储已经可以代替Cookie存储。而这种新的存储方式又在实际应用中带来了哪些新的安全风险。带着这些疑问我们来进行下面的讨论。

(1)是否可以代替Cookie

浏览器使用Cookie进行身份验证已经好多年,那现在既然localStorage存储空间那么大,是否可以把身份验证的数据直接移植过来呢。以现在来看,把身份验证数据使用localStorage进行存储还不太成熟。我们知道,通常可以使用XSS漏洞来获取到Cookie,然后用这个Cookie进行身份验证登录。后来为了防止通过XSS获取Cookie数据,浏览器支持了使用HTTPONLY来保护Cookie不被XSS攻击获取到。而localStorage存储没有对XSS攻击有任何的抵御机制。一旦出现XSS漏洞,那么存储在localStorage里的数据就极易被获取到。
如果一个网站存在XSS漏洞,那么攻击者注入如下代码,就可以获取使用localStorage存储在本地的所有信息。
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-31 12:16 , Processed in 0.054448 second(s), 13 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表