node项目下的安全组件扫描处理

公司有job会每天扫描研发项目,其中node项目会针对pkg的组件漏洞及时提醒,有必要的话我们都是要及时处理的,毕竟安全无小事,这里总结下做法。

组件漏洞一般是指采用的npm包版本在开源漏洞库中有记录,即社区里已经告知了该版本存在漏洞,因此是建议升级到某些版本的。

在接到这样的通知时要做的就是尽快升级。当然实际的操作会分几种情况

  1. 直接依赖
    如果pkg是作为直接依赖,那么直接升级即可,只是需要注意如果是大版本更新,要考虑使用上是否有变动,是的话,需要调整下调用写法,当然更多是要验证,影响大的话,要降低发布速度,安全第一。
  2. 间接依赖
    如果pkg是作为间接依赖,会麻烦一点。优先是把直接依赖找出来,进行升级,如果直接依赖的包并没有新版本,这时可以利用resolution直接控制包版本。当然这里一样是要确定版本升级是否是大版本更新,同时修复发布的话,风险有多大。

npm ls pkg

这里介绍个小技巧,利用npm ls 可以快速确定某个包在项目下的依赖树结构,同时根据安全报告提示的版本信息等,你可以快速确定是直接依赖还是间接依赖,即使是间接也可以明确知道是哪个包引入的该版本。

https://static.1991421.cn/2024/2024-06-02-124526.jpeg

npm-check

无论是使用npm-check还是yarn,pnpm自带的交互式检查更新,都是很不错的方式去查询版本升级信息,这里我推荐用起来。

写在最后

done。安全无小事,每次暴露的安全漏洞还是建议仔细看一下,而不仅仅是更新一个版本号的事。