Github在我的一个存储库上给了我这个错误。
We found a potential security vulnerability in one of your dependencies.
A dependency defined in ./package-lock.json has known security vulnerabilities
and should be updated.
我们的package.json
文件中未定义依赖项。根据我的理解,删除package-lock.json
文件并重新生成它并不是一个好习惯。但是,我看不到任何其他方法来解决此问题。如果我解除此安全漏洞,它将在几天后再次出现。有任何想法吗?谢谢!
答案 0 :(得分:21)
您应该尝试识别有问题的软件包的名称,然后运行
npm install package-name
显然,替换了包名。
这将安装最新版本的软件包,并且最新版本经常修复安全问题。如果您对版本有限制(例如:1.2),您可以尝试:
npm install package-name@^1.2
将安装最新的修补版本
新:现在,使用npm @ 6可以直接运行
npm audit fix
答案 1 :(得分:6)
要解决此问题:
解决方案1: 首先找到漏洞:使用您的终端: 插入您的项目,然后运行“ npm ls hoek”
最后: npm安装bcrypt @ latest
然后将更新的项目推送到git。(即执行新的提交)。
解决方案2:
如果第一个选项/解决方案不能解决问题。请在package-lock.json中手动更改版本。 手动将版本从2.16.3更改为4.2.1
"hoek": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
"dev": true
然后在GitHub上更新项目(commit / push) 只要确保您的package-lock.json版本中出现的每个hoek版本都更改为4.2.1
或者,如果您能找到一种使用npm更改hoek版本/更新hoek的方法,则可以使事情变得更加简单。(例如: npm update @ hoek..version )。卸载特定的依赖项,然后使用bower或npm重新安装它。
答案 2 :(得分:2)
根据我的理解,删除package-lock.json文件并重新生成它并不是一个好习惯。
然而,这是通常在这种情况下所做的事情
例如,请参阅angular/angular-cli issue 8534,PR 8535解析。{。}
这导致了一个依赖项目,如frees-io/freestyle-opscenter-webclient
到update its package-lock.json
: PR 31。
答案 3 :(得分:2)
在我用yarn构建的项目中,我遇到了lodash安全漏洞的相同问题。 Github将这些标记为安全问题。
我使用终端在上面的@rileymanda中尝试了答案:cd进入项目,然后运行npm ls lodash
。
这发现在我的情况下,错误出在 react-scripts 中。快速Google针对与react-scripts和lodash有关的问题发现这是一个已知问题。
我尝试了各种通过纱线固定的事情-都没有成功。 npm ls lodash
仍显示lodash的易受攻击版本。
已阅读Matt Turnbull's blog about improvements to npm,我从yarn切换回npm。 (删除yarn.lock
,删除./node_modules
。运行npm install
)。 npm ls lodash
现在显示了正在使用的最新依赖版本-哇!致力于github,现在很高兴该漏洞消失了。
看来纱线可能正在努力解决这些问题(或不打算这样做)。
如果在用yarn进行构建时遇到此问题,请尝试将[back]切换为npm!
答案 4 :(得分:1)
最简单/最简单的解决方法是:
npm install <dep>
npm uninstall <dep>
npm update
npm install
发件人:https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041
答案 5 :(得分:0)
已知的安全漏洞,应予以更新。
自2019年5月23日起,您现在拥有“ Dependabot: Automated security fixes”
通过Dependabot的集成,我们发布了自动安全修复程序作为公开Beta。
自动安全修复程序是GitHub生成的拉取请求,用于修复安全漏洞。
它们使工作流程中繁琐的部分自动化,并使开发人员可以轻松地保持依赖关系的最新状态。
在“ Configuring automated security fixes”中查看更多信息
注意:自动安全修复程序在beta中可用,并且可能会更改。
您可以为使用安全警报和依赖关系图的任何存储库启用自动安全修复程序。
从2019年5月开始,我们将在接下来的几个月中自动在每个使用安全警报和依赖关系图的存储库中启用自动安全修复程序。
答案 6 :(得分:0)
这对我有用。 卸载所有依赖项,然后重新安装
例如
来自 package.json ,请参阅您的依赖项列表
{
"name": "ebook-saler",
"version": "1.0.0",
"description": "App for selling ebooks",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "Md Shayon",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"express-handlebars": "^3.1.0",
"hoek": "^6.1.3",
"stripe": "^7.5.0"
}
}
遵循此命令
npm uninstall body-parser express express-handlebars hoek stripe
npm install body-parser express express-handlebars hoek stripe
git commit -m "updated"
git push
答案 7 :(得分:0)
答案 8 :(得分:0)
尝试npm audit fix
,它将解决许多警告
然后npm i [package.name]@xxx
例如:
"dependencies": {
"lodash": ">=4.17.13"
}
npm i lodash@4.17.13