HTML5安全风险详析之四:Web Worker攻击


  本文标签:HTML5安全 Web Worker攻击

一、WebWorker介绍

因为Javascript是单线程执行的,在执行过程中阅读器不能执行其它Javascript脚本,UI渲染线程也会被挂起,从而招致阅读器进入僵死状态  。 使用WebWorker 可以将计算过程放入一个新线程里去执 即将幸免这种状况的浮现  。这样我们 可以同时执行多个JS 使命而不会堵塞阅读器,十分 合适异步交互和大规模计算,这在以往是很难做到的  。

【 有关文章】:

HTML5安全风险详析之一:CORS 突击

HTML5安全风险详析之二:Web Storage 突击

HTML5安全风险详析之三:WebSQL 突击

下面一张图形象的揭示了WebWorker的作用:没有WebWorker时,假如我们要煎一个鸡蛋饼,需求先和面粉, 而后打鸡蛋,最终 威力煎饼; 使用WebWorker, 可以在和面粉的同时打鸡蛋,这两者同时进行,都 实现后就能开始煎饼,极大的缩小了期待的 工夫  。

然而这样一个好的 特点也会引入 突击的可能  。

二、WebWorker 突击

1、Botnet

突击的 模式包含DDos 突击、发送垃圾邮件,消费者一旦 拜访 歹意页面或者网站时,页面的 歹意代码就能把消费者的阅读器当作肉鸡,利用WebWorker大规模执行多线程 突击,例如DDos 突击、发送垃圾邮件或者进行网络嗅探  。

DDOS 突击( 分布式 回绝服务 突击)

2、postMessage带来的问题

WebWorker 无奈 拜访DOM,不得不通过postMessageAPI和主线程通讯  。postMessage在HTML5中被引入,用来解决跨域或者跨线程数据交互的问题  。然而假如messaging 可以 接纳任何 起源的信息,此页面有可能会被 突击;另外postMessage不通过服务器,假如不 通过验证和过滤,可能成为XSS注入点  。例如如下代码没有对输入数据进行验证和 荡涤, 突击者 彻底 可以 构造 歹意的data来注入页面DOM, 构造XSS 突击,形如“>”等等  。

  1. 01.worker.addEventListener(‘message’,function(e) {    
  2. 02.   document.getElementById(‘result’).innerHTML = e.data;    
  3. 03.}, false);  

三、 突击工具

Ravan是一个JS的 分布式计算系统, 可以用HTML5Web Worker通过 后盾加密的JS多线程脚 原来执行蛮力 突击  。

四、预防之道

1、关于消费者来说,不要 拜访不安全的站点  。

2、 使用postMessage时需求验证 起源可信;另外不要 使用innerHTML,现代阅读器提供了textContent属性, 可以协助对HTML标签进行过滤,或者你 可以自行编写过滤的逻辑和函数  。