我在想,如果一个网络工作者将沙箱不可信的JavaScript代码的安全方式。 比方说,例如在绘图应用程序的情况下,开发人员可以实现新的绘图工具,你可以把自己的代码webworker内,用户点击画布上的任何时候,向他们发送包含光标位置的JSON消息,和图像数据的阵列中,并且当脚本完成,它通过回包含新的图像数据的消息。
这将是安全的,还是有风险,我没有想到的?
我在想,如果一个网络工作者将沙箱不可信的JavaScript代码的安全方式。 比方说,例如在绘图应用程序的情况下,开发人员可以实现新的绘图工具,你可以把自己的代码webworker内,用户点击画布上的任何时候,向他们发送包含光标位置的JSON消息,和图像数据的阵列中,并且当脚本完成,它通过回包含新的图像数据的消息。
这将是安全的,还是有风险,我没有想到的?
DOM是不提供给网络工作人员,但它可以访问相同来源的东西,像indexedDB
。 见我对这个相关的问题:
工作人员可以为不可信的代码足够安全
安全的方法是使用sandbox
iframe的属性:
http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/
也看看我的库,简化了流程,并提供了与沙箱(函数出口,而不是消息),方便连接:
https://github.com/asvd/jailed
但问题是,如果开发者希望访问DOM。 Web Workers是不允许处理DOM,除非整个代码是唯一的数据。
我建议你沙箱的主要领域,类似的jsfiddle如何运行iframe中的一切整个应用程序。 这样一来,所有潜在的危险代码只能在该帧,而所有其他的东西,比如登录,在框架外面从潜在危险的代码来处理,在主域远离工作。
最重要的是,仅仅包括安全的代码。 在你的主应用程序合并之前检查的代码。