微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果您不是专家,不建议使用 npm audit --force那该怎么办呢?我的生产应用不安全吗?

如何解决如果您不是专家,不建议使用 npm audit --force那该怎么办呢?我的生产应用不安全吗?

我是 Angular 的新手,当我在做典型的事情时

npm install

我发现了如下常见的(至少对我而言)警告:

    found 42 vulnerabilities (40 moderate,2 high)
    run `npm audit fix` to fix them,or `npm audit` for details

执行后

npm audit fix

那时我发现只有几个漏洞可以修复

    fixed 4 of 42 vulnerabilities in 1636 scanned packages
      3 vulnerabilities required manual review and Could not be updated
      2 package updates for 35 vulnerabilities involved breaking changes
      (use `npm audit fix --force` to install breaking changes; or refer to `npm    audit` for steps to fix these manually)

我想学习如何正确地做事,我非常关心我的项目的安全性,但是,正如我所说,我想手动修复问题是很新的。

寻找信息,我已阅读official npm Docs :

如果你对自己想要做什么没有一个明确的想法,那么强烈 建议您不要使用此选项!

我当然不知道,我想知道:

  • 作为非专业开发人员,我能做些什么来解决这个问题
  • 如果我不修复这些漏洞,我的生产应用就会不安全

根据@Trott 给出的答案给出更多内容,herte 是我的 package.json 文件

{
  "name": "test-exercise","version": "0.0.0","scripts": {
    "ng": "ng","start": "ng serve","build": "ng build","test": "ng test","lint": "ng lint","e2e": "ng e2e"
  },"private": true,"dependencies": {
    "@angular/animations": "~11.1.2","@angular/common": "~11.1.2","@angular/compiler": "~11.1.2","@angular/core": "~11.1.2","@angular/forms": "~11.1.2","@angular/platform-browser": "~11.1.2","@angular/platform-browser-dynamic": "~11.1.2","@angular/router": "~11.1.2","rxjs": "~6.6.0","tslib": "^2.0.0","zone.js": "~0.11.3"
  },"devDependencies": {
    "@angular-devkit/build-angular": "~0.1101.4","@angular/cli": "~11.1.4","@angular/compiler-cli": "~11.1.2","@types/jasmine": "~3.6.0","@types/node": "^12.11.1","codelyzer": "^6.0.0","jasmine-core": "~3.6.0","jasmine-spec-reporter": "~5.0.0","karma": "~5.2.0","karma-chrome-launcher": "~3.1.0","karma-coverage": "~2.0.3","karma-jasmine": "~4.0.0","karma-jasmine-html-reporter": "^1.5.0","protractor": "~7.0.0","ts-node": "~8.3.0","tslint": "~6.1.0","typescript": "~4.1.2"
  }
}
 

解决方法

您应该如何认真对待 npm audit 警告的答案是:视情况而定。 (为了将来参考,如果您可以共享您的 package.json 文件或至少 dependenciesdevDependencies 条目,讨论/回答这些类型的问题会容易得多。)

如果 npm audit 列出的模块在那里,因为它们要么在 devDependencies 中,要么在您的 devDependencies 的依赖树中,那么有漏洞的代码很可能永远不会由用户执行。如果可以的话,您仍然应该修复问题,但根据经验,devDependencies 漏洞并不像 dependencies 漏洞那样令人担忧。 (考虑对由 critical 标记为 npm audit 的漏洞进行例外处理,并确保无论它们在哪里都得到修复,但根据您发布的输出,您没有任何这些漏洞。)

另一方面,如果 npm audit 列出的模块(尤其是标记为 highcritical 的模块)因为它们在您的 dependencies您的 dependencies 中的条目或条目要求,那么这可能需要调查。

npm audit 的输出引起了一些争议,许多人认为它常常不必要地令人担忧且难以理解。 You are not alone.

UPDATE(在用户发布他们的 package.json 之后):使用 npm 6.x 版,当我对结果运行 npm audit 时,所有问题(在撰写本文时,当然!)在开发依赖项中。您可以通过以下行中的 npm 来判断(在 [dev] 版本 6 中 - 其他版本具有不同的输出):

│ Dependency of │ karma [dev] |

因此,一方面,这里可能没有太多可担心的。另一方面,如果您设法更新其中一些报告问题的过时软件包,您可能会更快乐并且问题更少。一件看似简单且看似安全的事情会让您(我认为)只有两个警告,那就是将 @angular-devkit/build-angular 从 0.1101.4 更新到 0.1102.14(这是最新的 0.x 版本,如写这篇文章)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?