修复 npm 漏洞

Tho*_*ler 7 dependencies node.js dependency-tree npm-audit npm-vulnerabilities

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

我遵循了npm check 和 update package if need 的一系列建议,即:

  • npm audit fix
  • npm audit fix --force
  • npm update

npm audit说还剩下24个漏洞。
但上述命令都无法修复它们。

npm outdated结果没有输出。

易受攻击的软件包是:

ansi-regex
glob-parent
node-forge
nth-check
postcss
Run Code Online (Sandbox Code Playgroud)

我实际上不知道为什么它们是我项目的一部分。我的 里没有它们package.json

修复这些漏洞的后续步骤是什么?

以下是我尝试过的。

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

ansi-regex
glob-parent
node-forge
nth-check
postcss
Run Code Online (Sandbox Code Playgroud)

在撰写本文时,运行 npm 版本 8.5.5 时,您应该会发现 24 个漏洞,其中 18 个中度漏洞和 6 个高漏洞。

Tho*_*ler 3

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

那么,我做了什么?

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

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

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

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

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

就我而言,这个过程可归结为以下两行:

"parcel": "^2.4.0",
"parcel-bundler": "^1.12.5",
Run Code Online (Sandbox Code Playgroud)

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

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.
Run Code Online (Sandbox Code Playgroud)

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