NPM 审计修复

NPM Audit fixes

在 运行 npm audit 之后我有(这只是其中之一)中度警告

Moderate      │ Prototype pollution
Package       │ hoek
Patched in    │ > 4.2.0 < 5.0.0 || >= 5.0.3
Dependency of │ karma
Path          | karma > log4js > loggly > request > hawk > sntp > hoek

我可以看到 hoek 是业力的依赖(在链条的下游)。查看 GitHub 上的 Karma 回购,我可以看到这个问题已经提出,但没有立即解决。

这是我们现在必须接受的东西,直到他们更新了它们的依赖项,或者我们可以告诉我们的应用程序使用更新版本的 hoek 并应用于所有包吗?

问题是loggly已经很久没有更新了,硬编码到request版本,使用了hoek有指定漏洞的版本。有open issue.

考虑到 hoek 包的作用,它不太可能导致真正的安全问题。

从用户的角度来看,可以通过使用修复此依赖关系的分支来解决安全问题,例如this pull request:

"karma": "^2.0.2",
"loggly": "github:winstonjs/node-loggly#pull/79/head"

由于 loggly 分支版本匹配 log4js 中的约束,这将用固定版本替换原始 loggly(可能需要清除 node_modules 才能生效)。

这导致

400 Bad Request - POST https://registry.npmjs.org/-/npm/v1/security/audits

npm audit 的错误,所以现在应该保持原样。

您可以通过拉取请求或提交 npm 安装依赖项的固定版本。 例如

npm install github:winstonjs/node-loggly#pull/79/head

然后删除package.json中添加的行,例如"loggly": "github:winstonjs/node-loggly#pull/79/head"

在 package-lock.json 中搜索 loggly 并在其中显示 "version": "<some git url>",删除 url 并将其替换为适当的版本号,例如“1.1.1”。