首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修复NPM漏洞

修复NPM漏洞
EN

Stack Overflow用户
提问于 2022-03-27 09:49:10
回答 2查看 1.5K关注 0票数 5

我正在学习TypeScript教程。不幸的是,这些包已经过时了,我收到了关于漏洞的警告。

我遵循了npm检查和更新包(如果需要)的一系列建议,即:

代码语言:javascript
运行
复制
npm audit fix
npm audit fix --force
npm update

npm audit说仍然有24个漏洞。但是,上面的任何命令都不会修复它们。

npm outdated导致没有输出。

易受攻击的一揽子方案是:

代码语言:javascript
运行
复制
ansi-regex
glob-parent
node-forge
nth-check
postcss

我不知道为什么他们是我的项目的一部分,我没有他们在我的package.json配置。

修复这些漏洞的下一步步骤是什么?

我试过:

您可以在空目录中使用以下package.json再现我的最新状态,并运行npm install

代码语言:javascript
运行
复制
{
  "name": "pacman",
  "version": "0.0.1",
  "description": "I just follow a tutorial. Nothing of interest.",
  "keywords": ["game"],
  "license": "MIT",
  "author": "someone stupid",
  "scripts": {
    "build": "parcel build index.html",
    "dev": "parcel index.html --open",
    "start": "npm run build && npm run dev",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^5.16.0",
    "@typescript-eslint/parser": "^5.16.0",
    "ansi-regex": "^6.0.1",
    "eslint": "^8.12.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-prettier": "^4.0.0",
    "glob-parent": "^6.0.2",
    "node-forge": "^1.3.0",
    "nth-check": "^2.0.1",
    "parcel": "^2.4.0",
    "parcel-bundler": "^1.12.5",
    "postcss": "^8.4.12",
    "prettier": "^2.6.1",
    "typescript": "^4.6.3"
  },
  "dependencies": {
    "npm": "^8.5.5"
  }
}

这将为您提供24个漏洞,18个中度漏洞和6个漏洞(在编写本报告时运行npm 8.5.5)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-27 10:22:10

根据注释,我已经尝试了一般情况下的所有命令,在这种情况下,您需要开始分析各个包。

那我做了什么?

  1. 将所有依赖项更新为最新版本。

接下来,通过删除一半的依赖项并重复以下步骤来执行二进制搜索

  1. 删除node_modules文件夹
  2. 运行npm install
  3. 运行npm audit以检查漏洞

如果没有漏洞,请添加要安装的其余软件包的一半。

如果存在漏洞,请删除当前正在安装的包的一半。

在我的例子中,这个过程归结为以下两行:

代码语言:javascript
运行
复制
"parcel": "^2.4.0",
"parcel-bundler": "^1.12.5",

对于parcel-bundler,NPM发出警告:

代码语言:javascript
运行
复制
npm WARN deprecated parcel-bundler@1.12.5: Parcel v1 is no longer maintained. 
Please migrate to v2, which is published under the 'parcel' package.

所以我想我根本不需要parcel-bundler,因为它已经集成到parcel包中了,在前面的步骤中,我已经将它更新到了version 2。

票数 2
EN

Stack Overflow用户

发布于 2022-10-03 03:26:51

尝试使用以下命令更新所有npm。它帮助了我

代码语言:javascript
运行
复制
npm install -g npm@latest
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71635274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档