是网络工作者沙箱不可信的JavaScript代码的安全方法(Are web workers a se

2019-09-03 22:00发布

我在想,如果一个网络工作者将沙箱不可信的JavaScript代码的安全方式。 比方说,例如在绘图应用程序的情况下,开发人员可以实现新的绘图工具,你可以把自己的代码webworker内,用户点击画布上的任何时候,向他们发送包含光标位置的JSON消息,和图像数据的阵列中,并且当脚本完成,它通过回包含新的图像数据的消息。

这将是安全的,还是有风险,我没有想到的?

Answer 1:

DOM是不提供给网络工作人员,但它可以访问相同来源的东西,像indexedDB 。 见我对这个相关的问题:

工作人员可以为不可信的代码足够安全

安全的方法是使用sandbox iframe的属性:

http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

也看看我的库,简化了流程,并提供了与沙箱(函数出口,而不是消息),方便连接:

https://github.com/asvd/jailed



Answer 2:

但问题是,如果开发者希望访问DOM。 Web Workers是不允许处理DOM,除非整个代码是唯一的数据。

我建议你沙箱的主要领域,类似的jsfiddle如何运行iframe中的一切整个应用程序。 这样一来,所有潜在的危险代码只能在该帧,而所有其他的东西,比如登录,在框架外面从潜在危险的代码来处理,在主域远离工作。

最重要的是,仅仅包括安全的代码。 在你的主应用程序合并之前检查的代码。



文章来源: Are web workers a secure way to sandbox untrusted javascript code