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

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

一、WebStorage简介

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

二、攻击方式

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

  1. 01.if(localStorage.length){    
  2. 02.         for(I in localStorage) {    
  3. 03.                   console.log(i);    
  4. 04.                   console.log(localStorage.getItem(i));    
  5. 05.         }    
  6. 06.}   

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

  1. 01.for(iin window) {    
  2. 02.         obj=window[i];    
  3. 03.         if(obj!=null||obj!=undefined)    
  4. 04.             var type =typeof(obj);    
  5. 05.         if(type=="object"||type=="string") {    
  6. 06.             console.log(“Name:”+i);    
  7. 07.             try {    
  8. 08.                 my = JSON.stringify(obj);    
  9. 09.                 console.log(my);    
  10. 10.             } catch(ex) {}    
  11. 11.         }    
  12. 12.}   

三、攻击工具

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

四、防御之道

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

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

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

2、不要存储敏感的信息

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

责任编辑:蓝雨泪 来源: 博客
相关推荐

2013-01-04 13:14:22

2013-01-04 13:39:51

2013-01-04 11:22:12

2013-01-04 13:30:04

2013-01-04 11:40:54

2013-01-21 11:04:38

2013-01-04 13:54:49

2013-01-21 13:52:47

2012-05-30 09:34:57

2013-06-27 14:33:00

2017-08-09 15:57:11

JavaScriptHtml5音频

2013-08-14 09:57:53

2010-04-12 13:44:48

无线局域网互访故障

2015-05-22 10:06:58

2012-06-05 10:48:23

2012-12-03 13:53:38

IBMdW

2014-08-26 10:43:52

2020-09-04 06:36:58

人工智能安全检测器

2012-10-09 11:02:11

IBMdw

2011-05-25 09:34:30

HTML5cssjavascript
点赞
收藏

51CTO技术栈公众号