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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

HTML5 localStorageXSS漏洞

發(fā)布時(shí)間:2023/12/29 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 HTML5 localStorageXSS漏洞 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

localStorage基礎(chǔ)

WindowlocalStorage屬性

HTML5 提供了兩種新的本地存儲(chǔ)方案,sessionStorage和localStorage,統(tǒng)稱(chēng)WebStorage。
顧名思義:
sessionStorage 是針對(duì)session的數(shù)據(jù)存儲(chǔ),關(guān)閉窗口后刪除。
localStorage 是一個(gè)本地的沒(méi)有時(shí)間限制的數(shù)據(jù)存儲(chǔ)。

它們同樣遵循SOP

語(yǔ)法:

window.localStorage

保存數(shù)據(jù)語(yǔ)法:

localStorage的局限

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

2、目前所有的瀏覽器中都會(huì)把localStorage的值類(lèi)型限定為string類(lèi)型,這個(gè)在對(duì)我們?nèi)粘1容^常見(jiàn)的JSON對(duì)象類(lèi)型需要一些轉(zhuǎn)換

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

4、localStorage本質(zhì)上是對(duì)字符串的讀取,如果存儲(chǔ)內(nèi)容多的話(huà)會(huì)消耗內(nèi)存空間,會(huì)導(dǎo)致頁(yè)面變卡

5、localStorage不能被爬蟲(chóng)抓取到

localStorage與sessionStorage的唯一一點(diǎn)區(qū)別就是localStorage屬于永久性存儲(chǔ),而sessionStorage屬于當(dāng)會(huì)話(huà)結(jié)束的時(shí)候,sessionStorage中的鍵值對(duì)會(huì)被清空

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

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

localStorage.setltem()存儲(chǔ)數(shù)據(jù)

localStorage.getItem()讀取數(shù)據(jù)

localStorage.removeItem()刪除數(shù)據(jù)

localStorage.clear()

localStorage安全分析

現(xiàn)在越來(lái)越多的前端人員把性能優(yōu)化的目標(biāo)指向了本地存儲(chǔ),利用localStorage來(lái)進(jìn)行本地資源緩存,因?yàn)槠浯笮∩舷逓?MB,可以裝相當(dāng)多的東西,甚至在FireFox中你還可以修改這個(gè)上限。

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

我們可以看一段代碼:將原來(lái)localStorage存儲(chǔ)的name數(shù)據(jù)賦值給id為test的頁(yè)面元素 我們可以設(shè)想萬(wàn)一里面是惡意代碼呢

<!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彈窗代碼 此時(shí)XSS彈窗發(fā)生

<!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

實(shí)例場(chǎng)景:

參考學(xué)習(xí):https://blog.csdn.net/yanghuan313/article/details/55260232

總結(jié)

以上是生活随笔為你收集整理的HTML5 localStorageXSS漏洞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。