阅读关于多线程JavaScript的这个问题,我想知道允许JavaScript生成多个线程是否会有任何安全隐患。例如,恶意脚本反复生成线程,试图压垮操作系统或解释器并触发进入“未定义行为领域”的风险,还是基本上没有问题?还有其他攻击方式可以利用支持线程的假设JavaScript实现,而非线程实现会对此免疫吗?
更新:请注意,锁定浏览器与创建未定义行为漏洞不同。
好的,你已经可以通过不良行为的JS锁定浏览器并且 严重 减缓系统运行速度。开明的浏览器已经实施了这种检查,并在事情失控之前停止它。
我倾向于认为线程也会以类似的方式处理。
我认为目前唯一的大规模多线程JavaScript应用是Google Chrome(他们什么时候发布啊,唉),如果我理解得没错,JavaScript每个标签页只会有一个进程,所以除非它开始弹出标签页(弹出窗口),否则这将是一个无效问题,但我认为Google已经妥善处理了这个问题,他们在沙盒中运行所有的JavaScript。
再次强调,我们需要区分1)语言中的多线程支持(我认为这不是一个严肃讨论的问题),以及2)在浏览器中的JavaScript引擎/解释器中使用多个线程。
对于#2,除非实现存在缺陷,否则我无法看出这真正会给引擎/解释器带来任何可能的安全问题。