HTML5安全風險詳析之二:Web Storage攻擊

HTML5支持WebStorage,開發者能夠爲應用建立本地存儲,存儲一些有用的信息。例如LocalStorage能夠長期存儲,並且存放空間很大,通常是5M,極大的解決了以前只能用Cookie來存儲數據的容量小、存取不便、容易被清除的問題。這個功能爲客戶端提供了極大的靈活性。數據庫

1、WebStorage簡介安全

HTML5支持WebStorage,開發者能夠爲應用建立本地存儲,存儲一些有用的信息。例如LocalStorage能夠長期存儲,並且存放空間很大,通常是5M,極大的解決了以前只能用Cookie來存儲數據的容量小、存取不便、容易被清除的問題。這個功能爲客戶端提供了極大的靈活性。session

2、攻擊方式工具

LocalStorage的API都是經過Javascript提供的,這樣攻擊者能夠經過XSS攻擊竊取信息,例如用戶token或者資料。攻擊者能夠用下面的腳本遍歷本地存儲。spa

  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並非惟一暴露本地信息的方式。咱們如今不少開發者有一個很差的習慣,爲了方便,把不少關鍵信息放在全局變量裏,例如用戶名、密碼、郵箱等等。數據不放在合適的做用域裏會帶來嚴重的安全問題,例如咱們能夠用下面的腳本遍歷全局變量來獲取信息。xml

 

    • 01.for(iin window) {    
    • 02.         obj=window[i];    
    • 03.         if(obj!=null||obj!=undefined)    
    • 04.             var type =typeof(obj);    
    • 05.         if(type=="object"||type=="string") {    
    • 06.             console.log(「Name:」+i);    
    • 07.             try {    
    • 08.                 my = JSON.stringify(obj);    
    • 09.                 console.log(my);    
    • 10.             } catch(ex) {}    
    • 11.         }    
    • 12.}   

3、攻擊工具token

HTML5dump的定義是「JavaScriptthat dump all HTML5 local storage」,它也能輸出HTML5 SessionStorage、全局變量、LocalStorage和本地數據庫存儲。ip

4、防護之道作用域

對於WebStorage攻擊的防護措施是:開發

一、數據放在合適的做用域裏

例如用戶sessionID就不要用LocalStorage存儲,而須要放在sessionStorage裏。而用戶數據不要儲存在全局變量裏,而應該放在臨時變量或者局部變量裏。

二、不要存儲敏感的信息

由於咱們總也沒法知道頁面上是否會存在一些安全性的問題,必定不要將重要的數據存儲在WebStorage裏。

相關文章
相關標籤/搜索