<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **一、WebWorker介紹** ? ? ? 由于Javascript是單線程執行的,在執行過程中瀏覽器不能執行其它Javascript腳本,UI渲染線程也會被掛起,從而導致瀏覽器進入僵死狀態。使用WebWorker可以將計算過程放入一個新線程里去執行將避免這種情況的出現。這樣我們可以同時執行多個JS任務而不會阻塞瀏覽器,非常適合異步交互和大規模計算,這在以前是很難做到的。 ? ? ??下面一張圖形象的揭示了WebWorker的作用:沒有WebWorker時,如果我們要煎一個雞蛋餅,需要先和面粉,然后打雞蛋,最后才能煎餅;使用WebWorker,可以在和面粉的同時打雞蛋,這兩者同時進行,都完成后就能開始煎餅,極大的縮短了等待的時間。 ![](https://box.kancloud.cn/2016-08-09_57a9aa557e160.jpg) ? ? ??但是這樣一個好的特性也會引入攻擊的可能。 **二、WebWorker攻擊** ? ? ??1、Botnet ? ? ??攻擊的方式包括DDos攻擊、發送垃圾郵件,用戶一旦訪問惡意頁面或者網站時,頁面的惡意代碼就能把用戶的瀏覽器當作肉雞,利用WebWorker大規模執行多線程攻擊,例如DDos攻擊、發送垃圾郵件或者進行網絡嗅探。 ![](https://box.kancloud.cn/2016-08-09_57a9aa55932e8.jpg) DDOS攻擊(分布式拒絕服務攻擊) 2、postMessage帶來的問題 ? ? ??WebWorker無法訪問DOM,只能通過postMessageAPI和主線程通信。postMessage在HTML5中被引入,用來解決跨域或者跨線程數據交互的問題。但是如果messaging可以接收任何來源的信息,此頁面有可能會被攻擊;另外postMessage不通過服務器,如果不經過驗證和過濾,可能成為XSS注入點。例如如下代碼沒有對輸入數據進行驗證和清洗,攻擊者完全可以構造惡意的data來注入頁面DOM,構造XSS攻擊,形如“><script></script>”等等。 ~~~ worker.addEventListener(‘message’,function(e) { document.getElementById(‘result’).innerHTML = e.data; }, false); ~~~ **三、攻擊工具** ? ? ??[Ravan](http://www.andlabs.org/tools/ravan.html)是一個JS的分布式計算系統,可以用HTML5Web Worker通過后臺加密的JS多線程腳本來執行蠻力攻擊。 ![](https://box.kancloud.cn/2016-08-09_57a9aa55ab3c3.jpg) **四、預防之道** ? ? ??1、對于用戶來說,不要訪問不安全的站點。 ? ? ??2、使用postMessage時需要驗證來源可信;另外不要使用innerHTML,現代瀏覽器提供了textContent屬性,可以幫助對HTML標簽進行過濾,或者你可以自行編寫過濾的邏輯和函數。 ? ? ??相關文章: ? ? ??《[關注HTML5安全風險](http://blog.csdn.net/hfahe/article/details/7960705)》 ? ? ??《[HTML5安全風險詳析之一:](http://blog.csdn.net/hfahe/article/details/7961566)CORS攻擊》 ? ? ??《[HTML5安全風險詳析之二:](http://blog.csdn.net/hfahe/article/details/7961618)Web Storage攻擊》 ? ? ??《[HTML5安全風險詳析之三:](http://blog.csdn.net/hfahe/article/details/8049414)WebSQL攻擊》 ? ? ??本文為原創文章,轉載請注明:來自[蔣宇捷的博客](http://blog.csdn.net/hfahe):[http://blog.csdn.net/hfahe](http://blog.csdn.net/hfahe)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看