如何在不引入重大更改的情况下修复新的 NestJS 项目中的 Express.js 和 @nestjs/core 漏洞?

问题描述 投票:0回答:1

我刚刚使用 NestJS 启动了一个新项目,在运行 npm 审核时,我遇到了一些与

express
@nestjs/core

相关的中等严重程度的漏洞

漏洞是:

以下是

npm audit
输出的相关部分:

@nestjs/core  <9.0.5
Severity: moderate
fix available via `npm audit fix --force`
Will install @nestjs/[email protected], which is a breaking change
node_modules/@nestjs/core
  @nestjs/testing  <=9.0.0-next.2
  Depends on vulnerable versions of @nestjs/core
  node_modules/@nestjs/testing

express  <4.19.2
Severity: moderate
No fix available
node_modules/express
  @nestjs/platform-express  *
  Depends on vulnerable versions of express
  node_modules/@nestjs/platform-express

对于

@nestjs/core
,运行
npm audit fix --force
将安装
@nestjs/[email protected]
,从而引入潜在的重大更改。此外,似乎没有针对 Express.js 漏洞的修复方法。

  • 如何修复这些漏洞,而不会有因强制更新而引入重大更改的风险?

  • 有没有办法在维护当前版本的同时修补这些安全问题,或者升级是唯一的选择?

  • 在新的开发环境下立即解决这些漏洞有多重要?

在不影响应用程序稳定性的情况下管理这些漏洞的任何帮助或建议都将非常有帮助。

express nestjs
1个回答
0
投票

使用 npm 的

overrides
字段临时覆盖嵌套依赖项(自
npm
CLI 版本 8.13.0 起可用)。一旦 NestJS 团队使用
@nestjs/platform-express
的修补版本更新
express
,请删除覆盖。

  1. 安装
    express
    的修补版本:
npm install [email protected]
  1. 在package.json中添加覆盖指令:
{
  "name": "my-package",
  "dependencies": {
    "express": "4.19.2"
  },
  "overrides": {
    "express": "$express"
  }
}
  1. 重新安装依赖项,让它们接受更改:
npm ci
# or `npm install` if you don't have the lockfile; consider using a lockfile
© www.soinside.com 2019 - 2024. All rights reserved.