日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

HTML5 localStorageXSS漏洞

發布時間:2023/12/29 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 HTML5 localStorageXSS漏洞 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

localStorage基礎

WindowlocalStorage屬性

HTML5 提供了兩種新的本地存儲方案,sessionStorage和localStorage,統稱WebStorage。
顧名思義:
sessionStorage 是針對session的數據存儲,關閉窗口后刪除。
localStorage 是一個本地的沒有時間限制的數據存儲。

它們同樣遵循SOP

語法:

window.localStorage

保存數據語法:

localStorage的局限

1、瀏覽器的大小不統一,并且在IE8以上的IE版本才支持localStorage這個屬性

2、目前所有的瀏覽器中都會把localStorage的值類型限定為string類型,這個在對我們日常比較常見的JSON對象類型需要一些轉換

3、localStorage在瀏覽器的隱私模式下面是不可讀取的

4、localStorage本質上是對字符串的讀取,如果存儲內容多的話會消耗內存空間,會導致頁面變卡

5、localStorage不能被爬蟲抓取到

localStorage與sessionStorage的唯一一點區別就是localStorage屬于永久性存儲,而sessionStorage屬于當會話結束的時候,sessionStorage中的鍵值對會被清空

6、localStorage的使用也是遵循同源策略的,所以不同的網站直接是不能共用相同的localStorage

localStorage方法
setItem 存儲數據【增】
getItem 讀取數據【查單個】
removeItem 刪除某個數據【刪單個】
clear 刪除全部數據【刪全部】
length localStorage存儲變量的個數【計算數據總數】
key 讀取第i個數據的名字或稱為鍵值(從0開始計數)
valueOf 獲取所有存儲的數據【查全部】
hasOwnProperty 檢查localStorage上是否保存了變量x,需要傳入x【判斷】
propertyIsEnumerable 用來檢測屬性是否屬于某個對象的【判斷】
toLocaleString 將(數組)轉為本地字符串

localStorage.setltem()存儲數據

localStorage.getItem()讀取數據

localStorage.removeItem()刪除數據

localStorage.clear()

localStorage安全分析

現在越來越多的前端人員把性能優化的目標指向了本地存儲,利用localStorage來進行本地資源緩存,因為其大小上限為5MB,可以裝相當多的東西,甚至在FireFox中你還可以修改這個上限。

雖然說這個localStorage非常好用但也存在安全隱患,如果我們將惡意代碼植入里面那么這段惡意代碼也會一直存在知道用戶清空我們的localStorage為止

我們可以看一段代碼:將原來localStorage存儲的name數據賦值給id為test的頁面元素 我們可以設想萬一里面是惡意代碼呢

<!DOCTYPE html>
<html>
<head>
    <title>localStorage XSS</title>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
    localStorage.setItem('name','xiaohua');
    document.getElementById("test").innerHTML = localStorage.name;
</script>
</body>
</html>

View Code

我們修改原有的localStorage里面name的值為惡意的XSS彈窗代碼 此時XSS彈窗發生

<!DOCTYPE html>
<html>
<head>
    <title>localStorage XSS</title>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
    localStorage.setItem('name','<img src=@ onerror=alert(1)>');
    document.getElementById("test").innerHTML = localStorage.name;
</script>
</body>
</html>

View Code

實例場景:

參考學習:https://blog.csdn.net/yanghuan313/article/details/55260232

總結

以上是生活随笔為你收集整理的HTML5 localStorageXSS漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。