是否可以以安全的方式卸载将评估为 Web Worker 的自定义用户代码?
Web Workers 的“仅与字符串通信”功能看起来很有希望,但评估用户代码几乎总是以有趣的方式危险。
我在网上找不到太多关于它的信息。是否有一种好方法可以在客户端或通过一些服务器端清理或其他方式来做到这一点?
是否可以以安全的方式卸载将评估为 Web Worker 的自定义用户代码?
Web Workers 的“仅与字符串通信”功能看起来很有希望,但评估用户代码几乎总是以有趣的方式危险。
我在网上找不到太多关于它的信息。是否有一种好方法可以在客户端或通过一些服务器端清理或其他方式来做到这一点?
Web 工作者无法更改 DOM,因此他们无法通过这种方式创建新元素并创建 XSS 攻击。但是,他们可以创建 XMLHttpRequest,因此他们可以访问并请求来自任何遵循同源策略的数据。
只要您清理与工人之间的消息,您就应该是安全的。只允许特定的字符串、对象或整数并阻止其他类型的消息。
此外,如果 Web Worker 仅针对每个用户而不是在用户之间分发,它们将不允许您的用户做任何他们在开发者控制台中无法做到的事情。
也可以看看:
这取决于两个因素:
哪个用户创建了代码?无论如何,每个用户都可以在自己的浏览器中执行自定义代码,您不能阻止他们。您可以“授予”当前用户输入的代码“完全权限”。
如果代码是由其他可能是恶意用户创建的,您需要小心。WebWorkers 可以执行 Ajax 请求,由于凭据,这可能是一个安全漏洞。并且任何无限循环和合作都不会很好。
您的 GUI 与 WebWorker 通信,并响应来自它的事件。WebWorkers 消息会对您的应用程序造成多少伤害?你需要限制它。