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