1玉雾、跨站腳本攻擊(XSS Cross Site Scripting)
網(wǎng)站一大堆文章 解釋啥是XSS
舉幾個不常見的案例:
- 通過SVG文件進(jìn)行XSS
SVG標(biāo)簽可以通過onload等事件在任何元素上執(zhí)行JavaScript翔试,而無需用戶交互<svg onload="javascript:alert(1)" xmlns="http://www.w3.org/2000/svg"></svg> <svg xmlns="http://www.w3.org/2000/svg"><g onload="javascript:alert(1)"></g></svg> <svg xmlns="http://www.w3.org/2000/svg"><script>alert(1)</script></svg>
- 通過audio、video標(biāo)簽進(jìn)行XSS
audio复旬、video標(biāo)簽標(biāo)簽可以通過onload等事件在任何元素上執(zhí)行JavaScript垦缅,而無需用戶交互<video poster=javascript:alert(1)//></video> <video><source onerror="alert(1)"> <video onerror="alert(1)"><source></source></video>
- 通過內(nèi)嵌iframe獲取權(quán)限
- 通過draggable API進(jìn)行文本注入
- 通過事件處理“ ondragstart”和值為“ true”的屬性“ draggable”,“ setData”方法可以將文本“malicious code”而不是“Drop me”到iframe中驹碍。該iframe可以包含一個網(wǎng)頁壁涎,其中包含一個用于輸入數(shù)據(jù)的輸入字段。請注意志秃,由于安全隱患怔球,跨域拖放功能同時受到嚴(yán)格限制。
- 通常情況下浮还,要禁用iframe的使用竟坛,可以在body的onLoad方法中遍歷dom節(jié)點(diǎn),移除iframe標(biāo)簽
2、跨域訪問(CORS CrossOrigin Resources Sharing)
{
"Access–Control-Allow-Origin": "*"
}
對于設(shè)置了允許所有域訪問的接口來說担汤,帶來快捷的同時涎跨,也帶來風(fēng)險。
通常情況下只允許同域訪問崭歧,在特殊情況下需要允許a.com訪問b.com時隅很,在b.com上設(shè)置如下來允許a.com訪問
{
"Access–Control-Allow-Origin": "http://a.com"
}
對跨越訪問的請求要嚴(yán)格校驗(yàn)session信息,包括請求頭驾荣、請求參數(shù)等
3外构、Web Worker 和 Service Worker 帶來的安全問題
Web Worker使用教程
Service Worker使用教程
通過預(yù)防XSS,來避免帶來的問題
- ddos
用戶一旦訪問惡意頁面或者網(wǎng)站時播掷,頁面的惡意代碼就能把用戶的瀏覽器當(dāng)作肉雞审编,利用WebWorker大規(guī)模執(zhí)行多線程攻擊,例如DDos攻擊歧匈、發(fā)送垃圾郵件或者進(jìn)行網(wǎng)絡(luò)嗅探 - postMessage + innerHTML帶來的問題
postMessage不通過服務(wù)器垒酬,如果不經(jīng)過驗(yàn)證和過濾,可能成為XSS注入點(diǎn)件炉。攻擊者完全可以構(gòu)造惡意的data來注入頁面DOM勘究,構(gòu)造XSS攻擊,形如“<script></script>”等worker.addEventListener(‘message’,function(e) { document.getElementById(‘result’).innerHTML = e.data; }, false);
4斟冕、file:// 協(xié)議跨域訪問
WKWebview控件將allowFileAccessFromFileURLs 設(shè)置為YES,開啟了file域訪問口糕,且允許file域訪問http域,但是并未對file域的路徑做嚴(yán)格限制磕蛇。
[preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];