HTML5Web Worker攻擊安全風(fēng)險(xiǎn)詳解
由于Javascript是單線程執(zhí)行的,在執(zhí)行過程中瀏覽器不能執(zhí)行其它Javascript腳本,UI渲染線程也會(huì)被掛起,從而導(dǎo)致瀏覽器進(jìn)入僵死狀態(tài)。使用WebWorker可以將計(jì)算過程放入一個(gè)新線程里去執(zhí)行將避免這種情況的出現(xiàn)。下面我們一起來看看!
一、WebWorker介紹
由于Javascript是單線程執(zhí)行的,在執(zhí)行過程中瀏覽器不能執(zhí)行其它Javascript腳本,UI渲染線程也會(huì)被掛起,從而導(dǎo)致瀏覽器進(jìn)入僵死狀態(tài)。使用WebWorker可以將計(jì)算過程放入一個(gè)新線程里去執(zhí)行將避免這種情況的出現(xiàn)。這樣我們可以同時(shí)執(zhí)行多個(gè)JS任務(wù)而不會(huì)阻塞瀏覽器,非常適合異步交互和大規(guī)模計(jì)算,這在以前是很難做到的。
下面一張圖形象的`揭示了WebWorker的作用:沒有WebWorker時(shí),如果我們要煎一個(gè)雞蛋餅,需要先和面粉,然后打雞蛋,最后才能煎餅;使用WebWorker,可以在和面粉的同時(shí)打雞蛋,這兩者同時(shí)進(jìn)行,都完成后就能開始煎餅,極大的縮短了等待的時(shí)間。
但是這樣一個(gè)好的特性也會(huì)引入攻擊的可能。
二、WebWorker攻擊
1、Botnet
攻擊的方式包括DDos攻擊、發(fā)送垃圾郵件,用戶一旦訪問惡意頁(yè)面或者網(wǎng)站時(shí),頁(yè)面的惡意代碼就能把用戶的瀏覽器當(dāng)作肉雞,利用WebWorker大規(guī)模執(zhí)行多線程攻擊,例如DDos攻擊、發(fā)送垃圾郵件或者進(jìn)行網(wǎng)絡(luò)嗅探。
DDOS攻擊(分布式拒絕服務(wù)攻擊)
2、postMessage帶來的問題
WebWorker無法訪問DOM,只能通過postMessageAPI和主線程通信。postMessage在HTML5中被引入,用來解決跨域或者跨線程數(shù)據(jù)交互的問題。但是如果messaging可以接收任何來源的信息,此頁(yè)面有可能會(huì)被攻擊;另外postMessage不通過服務(wù)器,如果不經(jīng)過驗(yàn)證和過濾,可能成為XSS注入點(diǎn)。例如如下代碼沒有對(duì)輸入數(shù)據(jù)進(jìn)行驗(yàn)證和清洗,攻擊者完全可以構(gòu)造惡意的data來注入頁(yè)面DOM,構(gòu)造XSS攻擊,形如“>”等等。
三、攻擊工具
Ravan是一個(gè)JS的分布式計(jì)算系統(tǒng),可以用HTML5Web Worker通過后臺(tái)加密的JS多線程腳本來執(zhí)行蠻力攻擊。
四、預(yù)防之道
1、對(duì)于用戶來說,不要訪問不安全的站點(diǎn)。
2、使用postMessage時(shí)需要驗(yàn)證來源可信;另外不要使用innerHTML,現(xiàn)代瀏覽器提供了textContent屬性,可以幫助對(duì)HTML標(biāo)簽進(jìn)行過濾,或者你可以自行編寫過濾的邏輯和函數(shù)。
【HTML5Web Worker攻擊安全風(fēng)險(xiǎn)詳解】相關(guān)文章:
HTML5Web Storage攻擊安全風(fēng)險(xiǎn)詳解09-01
HTML5API攻擊安全風(fēng)險(xiǎn)詳解08-26
HTML5劫持攻擊安全風(fēng)險(xiǎn)詳解08-28
HTML5安全風(fēng)險(xiǎn)之WebSQL攻擊詳解08-04
詳解DDoS攻擊原理的目標(biāo)導(dǎo)向02-14
安全設(shè)置有效防止黑客攻擊07-15
安全風(fēng)險(xiǎn)管理標(biāo)語(yǔ)02-22
如何安全設(shè)置有效防止黑客攻擊02-22