node项目下的安全组件扫描处理
公司有job会每天扫描研发项目,其中node项目会针对pkg的组件漏洞及时提醒,有必要的话我们都是要及时处理的,毕竟安全无小事,这里总结下做法。
组件漏洞一般是指采用的npm包版本在开源漏洞库中有记录,即社区里已经告知了该版本存在漏洞,因此是建议升级到某些版本的。
在接到这样的通知时要做的就是尽快升级。当然实际的操作会分几种情况
- 直接依赖
如果pkg是作为直接依赖,那么直接升级即可,只是需要注意如果是大版本更新,要考虑使用上是否有变动,是的话,需要调整下调用写法,当然更多是要验证,影响大的话,要降低发布速度,安全第一。 - 间接依赖
如果pkg是作为间接依赖,会麻烦一点。优先是把直接依赖找出来,进行升级,如果直接依赖的包并没有新版本,这时可以利用resolution直接控制包版本。当然这里一样是要确定版本升级是否是大版本更新,同时修复发布的话,风险有多大。
npm ls pkg
这里介绍个小技巧,利用npm ls 可以快速确定某个包在项目下的依赖树结构,同时根据安全报告提示的版本信息等,你可以快速确定是直接依赖还是间接依赖,即使是间接也可以明确知道是哪个包引入的该版本。
npm-check
无论是使用npm-check还是yarn,pnpm自带的交互式检查更新,都是很不错的方式去查询版本升级信息,这里我推荐用起来。
写在最后
done。安全无小事,每次暴露的安全漏洞还是建议仔细看一下,而不仅仅是更新一个版本号的事。