13

我第一次收到来自 GitHub 的关于我的项目的一些依赖项存在潜在安全问题(标签:高严重性)的通知。这是示例消息:

在 package-lock.json 中发现 url-parse 漏洞

这是建议的解决方案:

将 url-parse 升级到 1.4.3 或更高版本。例如:

"dependencies": {
  "url-parse": ">=1.4.3"
}

或者……</p>

"devDependencies": {
  "url-parse": ">=1.4.3"
}

现在,我所做的只是根据官方文档npm outdated -g --depth=0在我的终端中运行并执行命令来简单地检查任何过时的包(我也尝试使用 来定位依赖项本身)。一些软件包已成功更新,但似乎没有找到导致问题的软件包。我是否应该通过添加建议的代码行来手动更新它:?npm -g updatenpm update url-parse"url-parse": ">=1.4.3"

最后,我应该在多大程度上关注此类警报?

谢谢!

4

2 回答 2

8

更新它的最简单方法可能是按照您的建议进入package-lock.json文件并将旧"version": "#.#.#"的修改为JSON 对象"version": ">=1.4.3"下。url-parse我建议使用依赖项COMMAND+F名称(CONTROL+F对于 Windows 用户),因为该package-lock.json文件很容易有数千行长,并且一旦找到您的依赖项,请将版本号更改为 GitHub 认为可以免受漏洞影响的版本号。

我刚刚创建了一个新的存储库,我收到了一条非常相似的ws依赖消息,在package-lock.json手动更新文件中的版本后,我在刷新 GitHub 警报页面后收到了这条消息:

No open alerts on ws were found in package-lock.json.
Alerts may have been resolved and deleted by recent pushes to this repository.

ws作为参考,这是我在更新依赖项之前的样子:

"ws": {
      "version": "1.1.5",
      "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
      "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
      "dev": true,
      "requires": {
        "options": ">=0.0.5",
        "ultron": "1.0.x"
      }

之后:

"ws": {
      "version": ">=3.3.1",
      "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
      "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
      "dev": true,
      "requires": {
        "options": ">=0.0.5",
        "ultron": "1.0.x"
      }

你现在可能已经弄清楚了,因为我看到你差不多一年前发布了这个问题,但是把这个留在这里是为了帮助将来遇到类似问题的任何人。

于 2019-09-28T01:26:09.457 回答
7

您不需要手动编辑锁定文件,只需运行:

npm install --package-lock-only url-parse

它应该安装最新版本的软件包并仅更新锁定文件

由于未知原因,它还会更新 package.json,因此您需要:

git checkout package.json
于 2020-03-14T12:13:18.930 回答