工作人员是否足够安全以获取不受信任的代码

时间:2014-09-21 21:24:19

标签: javascript security iframe sandbox

我有一个用户提交的不受信任的代码,我需要在浏览器的沙盒环境中执行它。

我被告知网络工作者不能保证足够安全,并且应该更好地使用沙坑iframe。本页:

https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Web_Workers

还说工人不适合不受信任的代码。

但是如果我从Blob创建一个worker,它的url甚至有一个不同的协议(blob://)。在这种情况下,是否将单独的原始策略应用于工作程序代码?

如果还有其他原因,为什么工作人员(默认情况下)与沙盒iframe(访问IndexedDB或其他东西)相比受限制较少,是否有机会以某种方式设置工作人员以使其受到足够的限制,或者我还应该使用沙盒iframe吗?

1 个答案:

答案 0 :(得分:4)

  

在这种情况下,是否将单独的原始政策应用于工人代码?

不,来自the current editor's draft of the File API specification

  

Blob URL的来源必须与现有设置对象在创建它的方法(URL.createObjectURL或URL.createFor - )被调用时指定的有效脚本源相同。


  

其他原因,为什么工作人员(默认情况下)与沙盒iframe相比受限制较少

沙盒iframe可以指定除跨源通信之外的其他内容的某些权限。例如,您可以阻止沙盒内容打开弹出窗口。虽然网络工作者目前没有API来完成许多这些事情。


  

是否有机会以某种方式设置工作人员以使其受到足够的限制

Web工作者没有任何安全机制。 Web平台中还有其他工具用于隔离不受信任的代码,如您指出的沙盒iframe。你可以让一个沙盒iframe创建一个web worker,如果还好的话。