Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 为什么webpack警告不要编译不受信任的代码?_Javascript_Webpack - Fatal编程技术网

Javascript 为什么webpack警告不要编译不受信任的代码?

Javascript 为什么webpack警告不要编译不受信任的代码?,javascript,webpack,Javascript,Webpack,我试图理解在javascript的情况下这是如何工作的。我想Webpack在说编译时基本上缩小了javascript。那么,在这种情况下,一些不受信任的javascript代码如何通过服务器上的网页执行恶意代码呢?javascript IRC频道的一位好心人告诉我,这可以通过使用内联加载程序语法来实现。但我还是不明白这怎么可能 作为参考,“入门”页面中显示的警告如下: 请勿使用网页包编译不受信任的代码。这可能导致死刑 您的计算机、远程服务器或Web上的恶意代码 应用程序最终用户的浏览器 参考:

我试图理解在javascript的情况下这是如何工作的。我想Webpack在说编译时基本上缩小了javascript。那么,在这种情况下,一些不受信任的javascript代码如何通过服务器上的网页执行恶意代码呢?javascript IRC频道的一位好心人告诉我,这可以通过使用内联加载程序语法来实现。但我还是不明白这怎么可能

作为参考,“入门”页面中显示的警告如下:

请勿使用网页包编译不受信任的代码。这可能导致死刑 您的计算机、远程服务器或Web上的恶意代码 应用程序最终用户的浏览器

参考:


更多信息:
它可以通过两种方式执行代码:编译时(通过加载程序)和运行时。如果您在服务器上编译代码,SSR将是后者。允许您在网页包配置中不指定加载程序,加载程序可以运行他们想要的任何东西。

正在进行网页包的脚本(以及它包含的任何脚本)可以在打包时运行代码,这是经过设计的

这一警告是在我向npm安全人员(请求86380)发送了一封电子邮件之后发出的,内容是关于在打包阶段使用此文件运行Web包的代码

诀窍是滥用“神奇评论”功能

刚刚查看了当前的网页5.23.0,该功能仍然有效


显然,内联装载机是另一种滥用途径。请参阅:

为什么webpack会警告不要编译不受信任的代码?这不明显吗?如果您不信任该代码,则不要将其添加到项目中,无论是否添加到网页中。同样,您不会通过eval()运行用户提供的代码,也不会在服务器上运行它。i、 e SSR或运行时模板编译器等显然存在风险。但我想知道的是,为什么这是一种风险。我希望您理解这一点。@lawrencerone很明显,无论您是否使用webpack,使用第三方代码都是一种风险。但引用的消息将其视为使用webpack进行编译引入了另一种您无法获得的漏洞,因此问题是,我想我在消息中没有看到任何内容表明它增加了额外的考虑。通过webpack的代码可以做任何它喜欢做的事情,从exec到嵌入XSS。如果你不信任这个软件包,也就是说,它是由一个已知的黑客组织在它的软件包中放入了挖掘软件,那么你不应该认为webpack会做任何事情来保护你的计算机、远程服务器或你的应用程序的最终用户的Web浏览器。这是对不可信代码的警告,仅此而已。因为别忘了,如果有人发现一些注入的代码,他们会责怪webpack。此外,通知直接在NPM脚本部分的结论下,这对我来说很明显,为什么它会出现在入门页面上。。对于从未使用过NPM或此类包管理工具的初学者。你认为你研究得太多了,但不要相信我的话,问问开发人员为什么要添加它:/