SEO爱站网 logo SEO爱站网

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

高阶白帽 962 0 2020-10-18 09:37:08
一、WebStorage简介
       HTML5支持WebStorage,开发者可以为应用创建本地存储,存储一些有用的信息。例如LocalStorage可以长期存储,而且存放空间很 大,一般是5M,极大的解决了之前只能用Cookie来存储数据的容量小、存取不便、容易被清除的问题。这个功能为客户端提供了极大的灵活性。
二、攻击方式
       LocalStorage的API都是通过Javascript提供的,这样攻击者可以通过XSS攻击窃取信息,例如用户token或者资料。攻击者可以用下面的脚本遍历本地存储。
双击代码全选
1
2
3
4
5
6
if(localStorage.length){  
         for(I in localStorage) {  
                   console.log(i);  
                   console.log(localStorage.getItem(i));  
         }  
}
 
同 时要提一句,LocalStorage并不是唯一暴露本地信息的方式。我们现在很多开发者有一个不好的习惯,为了方便,把很多关键信息放在全局变量里,例 如用户名、密码、邮箱等等。数据不放在合适的作用域里会带来严重的安全问题,例如我们可以用下面的脚本遍历全局变量来获取信息。
双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
for(iin window) {  
         obj=window[i];  
         if(obj!=null||obj!=undefined)  
             var type =typeof(obj);  
         if(type=="object"||type=="string") {  
             console.log(“Name:”+i);  
             try {  
                 my = JSON.stringify(obj);  
                 console.log(my);  
             } catch(ex) {}  
         }  
}
 
三、攻击工具
       HTML5dump的定义是“JavaScriptthat dump all HTML5 local storage”,它也能输出HTML5 SessionStorage、全局变量、LocalStorage和本地数据库存储。


四、防御之道
       对于WebStorage攻击的防御措施是:
       1、数据放在合适的作用域里
       例如用户sessionID就不要用LocalStorage存储,而需要放在sessionStorage里。而用户数据不要储存在全局变量里,而应该放在临时变量或者局部变量里。
       2、不要存储敏感的信息
       因为我们总也无法知道页面上是否会存在一些安全性的问题,一定不要将重要的数据存储在WebStorage里。

微信无法连接到服务器怎么办

如何发布到高质量外链资源

纯手工软文外链代发包收录

电贸通的骗局

余额宝理财攻略只需三步收益翻倍

小蓝单车敏感事件被曝光

日本十大真实灵异事件一个比一个恐怖

美工突然辞职尼玛我不会作图啊

小蓝单车宣传事故小蓝单车敏感事件被曝光

网友跟帖
展开