多线程JavaScript的安全影响

3
阅读关于多线程JavaScript的这个问题,我想知道允许JavaScript生成多个线程是否会有任何安全隐患。例如,恶意脚本反复生成线程,试图压垮操作系统或解释器并触发进入“未定义行为领域”的风险,还是基本上没有问题?还有其他攻击方式可以利用支持线程的假设JavaScript实现,而非线程实现会对此免疫吗? 更新:请注意,锁定浏览器与创建未定义行为漏洞不同。
4个回答

3
不,在完美实现中,多个线程不会增加额外的安全问题。线程化的JavaScript会使JavaScript解释器变得更加复杂,从而更容易出现可利用的漏洞。但是仅有线程本身并不会增加任何安全问题。
JavaScript中不存在线程,因为“线程很烂”-请从语言设计者处阅读更多信息(http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html)。

1

好的,你已经可以通过不良行为的JS锁定浏览器并且 严重 减缓系统运行速度。开明的浏览器已经实施了这种检查,并在事情失控之前停止它。

我倾向于认为线程也会以类似的方式处理。


也许您可以解释一下“未定义行为”的含义?允许不受信任的脚本直接控制正在运行的 OS 原生线程数量的解释器将是非常幼稚的 - 我不知道 Gears 如何运行,但由于 API 以 WorkerPool 中的 Worker 为中心,我会非常惊讶如果他们没有将正在使用的原生线程总数限制在非常低的数字上。

0

我认为目前唯一的大规模多线程JavaScript应用是Google Chrome(他们什么时候发布啊,唉),如果我理解得没错,JavaScript每个标签页只会有一个进程,所以除非它开始弹出标签页(弹出窗口),否则这将是一个无效问题,但我认为Google已经妥善处理了这个问题,他们在沙盒中运行所有的JavaScript。


0

再次强调,我们需要区分1)语言中的多线程支持(我认为这不是一个严肃讨论的问题),以及2)在浏览器中的JavaScript引擎/解释器中使用多个线程。

对于#2,除非实现存在缺陷,否则我无法看出这真正会给引擎/解释器带来任何可能的安全问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接