NPM-AUDIT 发现高漏洞。我应该做些啥?

Posted

技术标签:

【中文标题】NPM-AUDIT 发现高漏洞。我应该做些啥?【英文标题】:NPM-AUDIT find to high vulnerabilities. What am I supposed to do?NPM-AUDIT 发现高漏洞。我应该做些什么? 【发布时间】:2020-04-28 20:15:50 【问题描述】:

npm audit 在我的项目上运行并得到了这个

高级命令注入 @angular-devkit/build-angular [dev] 的依赖

路径 @angular-devkit/build-angular > @ngtools/webpack > 砍树

更多信息https://npmjs.com/advisories/1432

高级命令注入

包树杀

已在 >=1.2.2 中修补

@angular-devkit/build-angular [dev] 的依赖关系

路径@angular-devkit/build-angular > 杀树

更多信息https://npmjs.com/advisories/1432

Tree-kill 需要更新,但它是 Angular 的一个部门,不是我的。所以呢?需要等待 angular-team 将自己的 package.json 更新为更新版本的 tree-kill?

【问题讨论】:

【参考方案1】:

您无需等待新版本的软件包 @angular-devkit/build-angular 即可解决此问题。

只需执行以下步骤:

    更新您的package.json 文件,添加resolutions 部分,使用正确版本的包tree-kill
"resolutions": 
  "tree-kill": "1.2.2"

    通过运行命令更新您的package-lock.json
npx npm-force-resolutions
    在您的项目中重新安装 NPM 包:
rm -r node_modules
npm install

运行npm audit 以检查您的项目是否不再存在此问题。并且不要忘记提交修改过的文件package.jsonpackage-lock.json

更多关于NPM Force Resolutions的信息。

【讨论】:

【参考方案2】:

我今天遇到了同样的问题,我通过以下方式解决了它:

    从 node_modules 文件夹中删除 tree-kill 包。 删除 package-lock.json 文件。 进入node_modules文件夹中的@angular-devkit/build-angular文件夹,编辑package.json文件;将 tree-kill 版本从 1.2.1 更改为 1.2.2 转到 node_modules 文件夹中的 @ngtools/webpack 文件夹,并执行与步骤 3 相同的操作。

之后运行 npm install。

【讨论】:

所以通过这个修复,我必须用 Git 保留 node_modules 文件夹对吗? 我不确定您的问题是否正确,但您需要在新安装后提交新的更改。 手动编辑您的依赖关系不是一个好主意,因为重新安装项目将代表问题【参考方案3】:

我也遇到了这个问题,经过一番研究,我发现了一些东西:

NPM throws error on "audit fix" - Configured registry is not supported

当然,这是关于另一个问题,但是通过调整那里给出的解决方案,它解决了我的问题。

所以:

删除tree-kill的node_modules文件夹 像之前那样编辑 package-lock.json 文件,但改用 tree-kill 模块。 别忘了在最后运行 npm install

我希望我已经足够清楚了。

【讨论】:

如果在步骤1中删除tree-kill的node_modules文件夹时应该删除它,我该如何在第二步中编辑package-lock.json?【参考方案4】:

检查 GitHub 存储库以查看是否正在修复。我发现了这个问题:https://github.com/angular/angular-cli/issues/16629 和一个拉取请求 (https://github.com/angular/angular-cli/pull/15894),它删除了依赖项。

【讨论】:

【参考方案5】:

将以下代码添加到 package.json

"resolutions": 
"tree-kill":"1.2.2"

删除所有节点模块:

rm -r node_modules

将新版本 1.2.2 的 package-lock.json 更新为:

npx npm-force-resolutions

现在安装节点模块:

npm install

这对我有用。

【讨论】:

【参考方案6】:

    从 node_modules 文件夹中移除 tree-kill 包并删除 package-lock.json 文件。

    找到@angular-devkit/build-angular node_modules 文件夹中的文件夹并编辑 package.json 文件; 将 tree-kill 版本从 1.2.1 更改为 1.2.2 找到@ngtools/webpack 在 node_modules 文件夹中并编辑 package.json 文件; 将 tree-kill 版本从 1.2.1 更改为 1.2.2

    运行 npm 安装。

【讨论】:

【参考方案7】:

将 package.json 中的 @angular-devkit/build-angular 版本更新到以下:

"@angular-devkit/build-angular": "0.13.10"

它对我有用。

【讨论】:

以上是关于NPM-AUDIT 发现高漏洞。我应该做些啥?的主要内容,如果未能解决你的问题,请参考以下文章

我应该做些啥来让它显示变量而不是值?

修复表格装饰器错误后我们应该做些啥不同的事情?

返回响应后做些啥?

如何在 Node.js 中发现 JavaScript 内存漏洞

DBA都该做些啥?

需要做些啥来实现对 Javascript 的多屏幕支持?