node.js - 运行建议的命令并不能修复 NPM 漏洞
问题描述
在我的项目中每次安装新的 NPM 模块后,我都会收到以下错误:
[!] 40 vulnerabilities found - Packages audited: 5840 (0 dev, 299 optional)
Severity: 8 Low | 24 Moderate | 8 High
然后我运行npm audit
并获得了 40 个漏洞的详细信息,例如:
# Run npm install npm@6.0.1 to resolve 22 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ npm │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ npm > libcipm > npm-lifecycle > node-gyp > request > hawk > │
│ │ boom > hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/566 │
└───────────────┴──────────────────────────────────────────────────────────────┘
或这个 :
# Run npm update fsevents --depth 2 to resolve 3 vulnerabilities
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ chokidar │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ chokidar > fsevents > node-pre-gyp > tar-pack > debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
所以我运行npm install npm@6.0.1
(即使我已经有 6.0.1)然后npm update fsevents --depth 2
但之后我重新运行npm audit
并且没有任何改变,我仍然有相同的 40 个漏洞,其中一些非常可怕。我该怎么办 ?
解决方案
这在 MacOS 上对我有用:
- 将 NPM 更新到新的 6.1.0。它引入了一个“npm audit fix”命令,更多信息在这里。
- 运行“npm 审计修复”。
当您再次运行“npm audit”时,剩下的唯一漏洞应该是“手动审查”问题。
推荐阅读
- javascript - JS 将日期 ymd 格式化为 yyyy-mm-dd
- powershell - 如何在特定版本的 Windows 上检索机器列表
- elasticsearch - ElasticSearch 文档的 ACID 更新
- reactjs - 浏览具有大数据集的组件(React)
- java - GSON:编码对象映射并在解码时保留类型
- search - 在 Flutter 的 appbar 中放置文本框
- arrays - 是切片
仍然在 Realm 中延迟加载? - css - CSS 两栏布局+渐变分离
- amazon-web-services - 将整个 S3 图像存储桶添加到 Amazon Rekognition 集合
- python - iloc'ing 一级多索引