繁体   English   中英

Web工作者是沙箱不受信任的JavaScript代码的安全方式

[英]Are web workers a secure way to sandbox untrusted javascript code

我想知道一个网络工作者是否是沙箱不受信任的JavaScript代码的安全方式。 例如,在开发人员可以实现新绘图工具的绘图应用程序的上下文中,您可以将他们的代码放在webworker中,并且每当用户单击画布时,向他们发送包含光标位置的JSON消息,以及图像数据的数组,并且当脚本完成时,它传递包含新图像数据的消息。

这是安全的,还是存在我没想到的风险?

DOM不可供Web工作者使用,但可以访问同源的东西,例如indexedDB 请参阅我的相关问题:

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

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

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

另请查看我的库,它简化了过程并提供了与沙箱的便捷连接(函数导出而不是消息传递):

https://github.com/asvd/jailed

问题在于开发人员是否期望DOM访问。 Web Workers不允许处理DOM,除非整个代码仅用于数据。

我建议您从主域中沙箱整个应用程序,类似于JSFiddle在iframe中运行所有内容的方式。 这样,所有潜在危险的代码只能在该框架中工作,而所有其他的东西,如登录,在框架外处理,在主域中处理,远离潜在危险的代码。

最重要的是,只需包含安全代码。 在将代码合并到主应用程序之前查看代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM