HTML5安全风险详析之二:Web Storage攻击

一、WebStorage简介

        HTML5支持WebStorage,开发者可以为应用创建本地存储,存储一些有用的信息。例如LocalStorage可以长期存储,而且存放空间很大,一般是5M,极大的解决了之前只能用Cookie来存储数据的容量小、存取不便、容易被清除的问题。这个功能为客户端提供了极大的灵活性。

二、攻击方式

        LocalStorage的API都是通过Javascript提供的,这样攻击者可以通过XSS攻击窃取信息,例如用户token或者资料。攻击者可以用下面的脚本遍历本地存储。

[html]  view plain copy
  1. if(localStorage.length){  
  2.          for(I in localStorage) {  
  3.                    console.log(i);  
  4.                    console.log(localStorage.getItem(i));  
  5.          }  
  6. }  
        同时要提一句,LocalStorage并不是唯一暴露本地信息的方式。我们现在很多开发者有一个不好的习惯,为了方便,把很多关键信息放在全局变量里,例如用户名、密码、邮箱等等。数据不放在合适的作用域里会带来严重的安全问题,例如我们可以用下面的脚本遍历全局变量来获取信息。

[html]  view plain copy
  1. for(iin window) {  
  2.          obj=window[i];  
  3.          if(obj!=null||obj!=undefined)  
  4.              var type =typeof(obj);  
  5.          if(type=="object"||type=="string") {  
  6.              console.log(“Name:”+i);  
  7.              try {  
  8.                  my = JSON.stringify(obj);  
  9.                  console.log(my);  
  10.              } catch(ex) {}  
  11.          }  
  12. }  
三、攻击工具

        HTML5dump的定义是“JavaScriptthat dump all HTML5 local storage”,它也能输出HTML5 SessionStorage、全局变量、LocalStorage和本地数据库存储。


四、防御之道

        对于WebStorage攻击的防御措施是:

        1、数据放在合适的作用域里

        例如用户sessionID就不要用LocalStorage存储,而需要放在sessionStorage里。而用户数据不要储存在全局变量里,而应该放在临时变量或者局部变量里。

        2、不要存储敏感的信息

        因为我们总也无法知道页面上是否会存在一些安全性的问题,一定不要将重要的数据存储在WebStorage里。

      原创文章,转载请注明:来自蒋宇捷的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值