Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在web worker中安全地使用eval来执行任意用户代码?_Javascript_Eval_Web Worker - Fatal编程技术网

Javascript 是否可以在web worker中安全地使用eval来执行任意用户代码?

Javascript 是否可以在web worker中安全地使用eval来执行任意用户代码?,javascript,eval,web-worker,Javascript,Eval,Web Worker,是否有可能以安全的方式卸载将被评估给Web工作者的自定义用户代码 Web工作人员的“仅与字符串通信”功能看起来很有希望,但以有趣的方式评估用户代码总是非常危险的 我在网上找不到很多关于它的信息。有没有一种好的方法可以在客户端或服务器端进行清理或其他操作?Web工作者无法更改DOM,因此他们无法创建新元素并以这种方式创建XSS攻击。但是,他们可以创建XMLHttpRequests,这样他们就可以访问并请求来自遵循同源策略的任何内容的数据 只要你对员工发来的信息进行消毒,你就应该是安全的。只允许特定

是否有可能以安全的方式卸载将被评估给Web工作者的自定义用户代码

Web工作人员的“仅与字符串通信”功能看起来很有希望,但以有趣的方式评估用户代码总是非常危险的


我在网上找不到很多关于它的信息。有没有一种好的方法可以在客户端或服务器端进行清理或其他操作?

Web工作者无法更改DOM,因此他们无法创建新元素并以这种方式创建XSS攻击。但是,他们可以创建XMLHttpRequests,这样他们就可以访问并请求来自遵循同源策略的任何内容的数据

只要你对员工发来的信息进行消毒,你就应该是安全的。只允许特定的字符串、对象或整数,并阻止其他类型的消息

此外,如果Web Workers仅针对每个用户,而不是在用户之间分配,那么他们将不允许您的用户执行任何他们在开发人员控制台上无法执行的操作

另见:

  • MDN:

这取决于两个因素:

  • 哪个用户创建了代码?不管怎样,每个用户都可以在自己的浏览器中执行自定义代码,您不能阻止他们。您可以“给予”当前用户输入的代码“完全权限”


    如果代码是由其他可能是恶意用户创建的,您需要小心。WebWorkers可以执行Ajax请求,这可能是由于凭据而造成的安全漏洞。任何无限循环和co都不是好东西

  • 您的GUI与WebWorker通信,并响应来自WebWorker的事件。WebWorkers消息会对您的应用程序造成多少危害?你需要限制这一点


如果点击F12并从控制台写入ajax请求,则表示您正在向服务器发出请求。您不需要工作人员来执行此操作,只需要一个控制台。@devundef:Dan没有说明稍后谁将执行Web工作人员。它可能是《网络工作者》的作者,也可能是完全不同的人。我猜是第二个。顺便说一句,如果我按F12,什么也不会发生。奇怪的时刻,嗯?;)我是否可以在设置worker时通过删除该函数来修复XMLHttpRequest问题?您的计划是否将用户脚本存储在服务器上并稍后运行?@devundef,正确。我计划以后任何用户都可以安全地运行代码。“Ajax请求,这可能是一个安全漏洞,因为凭据”:这只有在使用cookie时才是正确的,对吗?i、 e.当我们将JWT令牌附加到应用程序中的每个http调用时(不要将其传递给web worker),这不是问题。@TmTron是的,我可能指的是CSRF。这是cookie的一个问题,但对于“客户端位于本地网络”是凭据一部分的intranet站点也是一个问题。使用JWT也不一定安全,因为它们通常保存在Web存储中,普通工作人员也可以访问这些存储。