如何修复 npm 审计修复问题?
Posted
技术标签:
【中文标题】如何修复 npm 审计修复问题?【英文标题】:How to fix npm audit fix issues? 【发布时间】:2019-01-12 22:29:44 【问题描述】:┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.17.5 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ react-native-cached-image │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ react-native-cached-image > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 11 vulnerabilities (2 low, 8 moderate, 1 high) in 26316 scanned packages
11 vulnerabilities require manual review. See the full report for details.
当我尝试npm install
时会出现这种情况,并且所有这些都需要人工审核。我试图访问this 以查看更多信息,显然这是因为我的lodash
是4.17.4
版本。所以我运行了npm install --save lodash@4.17.5
并检查了我的package.json
以确保它正确反映。
但是,漏洞似乎仍然存在。想知道我是否以错误的方式修复它?
根据要求,package.json 的正文
"dependencies":
"lodash": "^4.17.5",
【问题讨论】:
在您的package.json
中您对lodash
有什么依赖关系?请在问题正文中发布实际字符串。
@Akrion:是的,确实有
等等......它谈到了react-native-cached-image
lib 有这个问题,因为它可能依赖于旧版本的 lodash 不是吗?你能在那个库中看到它在package.json
中说什么吗?
是的,在那个库中你有 4.17.4
刚刚签入他们的 github @github.com/kfiroo/react-native-cached-image/blob/master/…
【参考方案1】:
你可以用https://github.com/rogeriochaves/npm-force-resolutions解决它
1) 添加分辨率部分
"resolutions":
"lodash": "^4.17.5"
2) 运行
rm -r node_modules
npx npm-force-resolutions
npm install
【讨论】:
【参考方案2】:问题与 react-native-cached-image
软件包有关,该软件包依赖于 lodash 4.17.4
,您可以在此处看到:https://github.com/kfiroo/react-native-cached-image/blob/master/package.json#L51
【讨论】:
那我只能等包所有者自己更新依赖了?或者对于本地版本,我可以做点什么? 可以导航到 node_module 并对此包进行 npm 更新吗? 他们的最新版本是v1.4.3
。如果您使用的是该版本,那么您可以等待(也可以在他们的 repo 上打开一个问题来解决这个问题),或者您也可以fork
他们的 repo 并自己进行更改。看看能不能解决。这样至少你可以确定问题是什么,解决方案是什么。
如果你分叉并改变它......如果没有副作用/错误你可以推送 PR 看看他们是否接受等等。
运气好吗?您能证明更改该软件包中的 lodash 版本可以解决问题吗?以上是关于如何修复 npm 审计修复问题?的主要内容,如果未能解决你的问题,请参考以下文章
npm 审计修复后如何解决原型污染 lodash 需要人工审核