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


  本文标签:HTML5安全 Web Storage攻击

一、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里  。