网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 上文:http://www.2cto.com/Article/201209/154081.html一、WebStorage简介 HTML5支持WebStorage,开发者可以为应用创建本地存储,存储一些有用的信息。例如LocalStorage可以长期存储,而且存放空间很大,...

上文:http://www.2cto.com/Article/201209/154081.html

一、WebStorage简介

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

二、攻击方式

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

 
if(localStorage.length){ 
         for(I in localStorage) { 
                   console.log(i); 
                   console.log(localStorage.getItem(i)); 
         } 

        同时要提一句,LocalStorage并不是唯一暴露本地信息的方式。我们现在很多开发者有一个不好的习惯,为了方便,把很多关键信息放在全局变量里,例如用户名、密码、邮箱等等。数据不放在合适的作用域里会带来严重的安全问题,例如我们可以用下面的脚本遍历全局变量来获取信息。
 
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里。

from:http://blog.csdn.net/hfahe/article/details/7961618

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论