如何修复需要人工审核的手动npm审核程序包

时间:2018-09-17 18:12:43

标签: npm npm-audit

我最近将网站上的更新推送到我们的服务器上,这导致该文件被感染并导致我们的文件损坏,用户开始重定向到随机网站等。显然,这是由我们其中一个引起的依赖性。我正在使用npm来管理我们站点的依赖关系,并且最近了解了npm审核。每当我运行npm audit时,就有15个漏洞需要手动检查,并且我尝试通过更新至报告中每个漏洞的更多信息部分中建议的版本来修复它们,但运行时该漏洞仍然存在npm审核。我尝试更新报告 path 部分中相关软件包中的版本,并且在运行npm audit时该版本仍然存在。我显然不想再上传带有漏洞的文件并破坏我们服务器上的所有站点,我只是不确定如何解决npm审计附带的这些安全漏洞。

例如,这是报告中唯一出现的高风险:

  

高│正则表达式拒绝服务
  包装│硬饼干
  修补程序│> == 2.3.3
  │gulp-uncss [dev]的依赖性
  路径│gulp-uncss> uncss>请求> hard-cookie
  更多信息│https://nodesecurity.io/advisories/525

当我在package.json中以及在请求中将软件包更新为> = 2.3.3时,然后运行npm audit,漏洞仍然存在。知道如何解决此问题/修复漏洞吗?

1 个答案:

答案 0 :(得分:2)

可能已经晚了,但总比没有好。 我只是在nodejs领域工作了2年以上的新手,并且也遇到了很多审核警告,这就是我如何处理那些需要人工检查的漏洞。

首先,您必须了解那些需要手动检查的漏洞不是您安装并直接在代码中调用的软件包的版本。它们来自那些程序包的依赖项的调用。 在您的情况下,您使用软件包“ gulp-uncss”,并在代码“ gulp-uncss”内部调用了另一个名为“ tough-cookie”的依赖项。您安装的软件包正在管理自身的依赖关系,不受更新新版本或较旧版本的依赖关系的影响。您可以将软件包“ tough-cookie”更新为> = 2.3.3,但“ gulp-uncss”将始终调用版本为<2.3.3

的“ tough-cookie”

因此,您可以选择两种选择:

  • 转储该软件包,并使用另一个任务相似且无漏洞的软件包。
  • 将其分叉到该软件包的存储库,进行更改并创建一个请求请求,等待请求接受,在适应您请求的新版本更新后,您将能够使用该软件包而不会出现漏洞