1

我是 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)

我想学会正确地做事,我非常关心我的项目的安全性,但是,正如我所说,我猜我对手动修复事情很陌生。

寻找信息,我已阅读官方 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"
  }
}
 
4

1 回答 1

2

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

如果npm audit列出的模块存在devDependencies于您devDependencies的 . 如果/可以的话,您仍然应该修复问题,但根据经验,devDependencies漏洞并不像dependencies漏洞那么令人担忧。critical(考虑对标记为by的漏洞进行例外处理,npm audit并确保无论它们在哪里都得到修复,但根据您发布的输出,您没有任何这些漏洞。)

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

的输出npm audit是一些争议的根源,许多人觉得它经常不必要地令人担忧和难以理解。你并不孤单。

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

│ 依赖 │ karma [dev] |

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

于 2021-07-16T23:54:16.460 回答