作者:漂泊盼安定 | 来源:互联网 | 2022-12-10 14:08
我跑的npm install
时候说found 33 vulnerabilities (2 low, 31 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
.
但是,npm audit fix
产出up to date in 11s
fixed 0 of 33 vulnerabilities in 24653 scanned packages
33 vulnerabilities required manual review and could not be updated
这是否review
意味着它不应由用户修复?
当我运行npm audit
它时,给我一个表的列表,类似于Update to version 4.17.5 or later.
在此示例中,链接页面的修复部分说/node_modules/browser-sync/package.json
.但是,/node_modules/lodash/lodash.json
有以下几行:
????????????????????????????????????????????????????????????????????????????????
? Low ? Prototype Pollution ?
????????????????????????????????????????????????????????????????????????????????
? Package ? lodash ?
????????????????????????????????????????????????????????????????????????????????
? Patched in ? >=4.17.5 ?
????????????????????????????????????????????????????????????????????????????????
? Dependency of ? browser-sync [dev] ?
????????????????????????????????????????????????????????????????????????????????
? Path ? browser-sync > easy-extender > lodash ?
????????????????????????????????????????????????????????????????????????????????
? More info ? https://nodesecurity.io/advisories/577 ?
????????????????????????????????????????????????????????????????????????????????
而且没有更多的lodash依赖.所以它应该已经是v4.17.5.我还检查了var VERSION = '4.17.10';
哪一/node_modules/lodash/package.json
行.在npm install
有这些线路:
"devDependencies": {
"lodash-cli": "4.17.5",
}
我认为版本显示在"_id"中,而不是"_from",因此版本是正确的但漏洞仍然出现在审计列表中.
我仍然是node.js的新手,这些消息让我很困惑.有没有办法手动修复它或摆脱这些消息,我不能做任何事情?
1> Estus Flask..:
lodash-cli
in devDependencies
不会影响browser-sync
项目的工作方式,devDependencies
将软件包作为依赖项安装时将被忽略。
什么audit
报告说的是,这是easy-extender
有lodash
依赖性:
browser-sync > easy-extender > lodash
它取决于Lodash 3,而该问题已在Lodash 4中得到解决。可以通过分叉easy-extender
,更新和安装它(而不是NPM公共注册表中的软件包)来解决此问题。但是这种依赖性没有真正的问题。
audit
报告重要性应手动评估。即使嵌套的依赖项具有安全风险,也并不意味着已使用引入此风险的功能。这也不意味着即使使用它,也会由于使用方式而带来实际风险。
browser-sync
是生产中不使用的开发工具,没有太多可以利用其漏洞的方案。和原型污染是不是所有漏洞,只是一个通知,一包不遵循良好的做法,可以忽略不计。
通常,这是修复报告的漏洞的方法:
进行健全性检查
万一这是一个真正的问题,请检查易受攻击软件包的存储库中是否存在现有问题和 PR
如果没有,请提交问题
分叉存储库或使用现有PR作为git依赖项,直到在NPM版本中对其进行修复
如果嵌套了依赖项,请在多个嵌套级别上执行此操作
多数情况下,预计您不会超越健全性检查标准。
patch-package
可以帮助就地修补嵌套的依赖关系,但这不会影响audit
报告。