如何更新package-lock.json

时间:2018-11-02 09:28:20

标签: security github dependencies package-lock.json

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

  在package-lock.json中发现

url-parse漏洞

这是建议的解决方案:

  

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

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

或…

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

现在,我要做的就是通过按照official documentation在终端中运行npm outdated -g --depth=0并执行npm -g update命令来简单地检查所有过时的软件包(我还尝试了针对依赖项本身与npm update url-parse)。一些软件包已成功更新,但似乎找不到导致该问题的软件包。我是否应该通过添加建议的代码行"url-parse": ">=1.4.3"手动更新它?

最后,我应该对这种警报有多大关注?

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

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

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

git checkout package.json

答案 1 :(得分:0)

最简单的更新方法可能是按照您的建议进入package-lock.json文件,并将旧的"version": "#.#.#"修改为"version": ">=1.4.3" JSON对象下的url-parse。我建议COMMAND+F输入依赖项名称(W indows用户为CONTROL+F),因为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"
      }

您大概已经知道了这一点,因为我看到您差不多是一年前发布的问题,但是将其留在这里是为了帮助将来遇到类似问题的任何人。