当前位置: 首页 > news >正文

Node.js代码漏洞扫描工具介绍——npm audit

npm audit

运行安全检查

主要作用:检查命令将项目中配置的依赖项的描述提交到默认注册中心,并要求报告已知漏洞。如果发现任何漏洞,则将计算影响和适当的补救措施。如果 fix 提供了参数,则将对包树应用补救措施。
具体参考:https://www.npmrc.cn/quick-start/about-npm.html

这里主要介绍如何使用漏洞扫描的功能

关于前置环境治理

事实上,很多的网上的解决方案都是直接运行npm audit命令,这个在研发的角度是没有问题的
但从研发效能的角度来看,还需要一些环境治理的工作:
比如说:我们在构建流水线的时候,需要拉取最新的代码
但拉取的代码中,除了业务代码外,还需要一些依赖包
在Node.js中,有三个重要的文件:node_modulespackage.jsonpackage-lock.json

node_modules :node_modules 文件夹中存放许多的模块文件及插件,node_modules是安装node后用来存放用包管理工具下载安装的包的文件夹。比如webpack、gulp、grunt这些工具。在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块。

package.json:概念:package.json就是管理你本地安装的npm包,用于定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。”

使用场景:在拷贝项目时不需要拷贝node_modules文件夹,如果拷贝的话会很慢,所以需要用package.json来记录依赖版本号,可以解决安装的依赖与原项目依赖及版本保持一致的问题

package-lock.json:记录模块与模块之间的依赖关系,锁定包的版本,记录项目所依赖第三方包的树状结构和包的下载地址,加快重新安装的下载速度

具体可以参考:https://blog.csdn.net/weixin_48986139/article/details/124019530

在每一次代码拉取的过程中,研发同学基于多重开发的考虑,可能不会把本地的依赖包精确按时的上传到代码仓库,所以,在建立流水线的过程中,需要首选更新依赖包和模块与模块的依赖关系,再进行代码扫描:

rm -rf ./node_modules ./package-lock.json
npm cache clean --force
tnpm cache clean --force // 如果有内部npm包地址,则需要执行这一步
npm install --legacy-peer-deps && npx npm-force-resolutions
tnpm install --legacy-peer-deps && npx npm-force-resolutions // 如果有内部npm包地址,则需要执行这一步
npm install

其中如果没有tnpm,则需要把对应的包放入node_modules文件夹

关于npm audit使用

这个时候,依赖包基本上已经安装完毕了,然后即可运行npm audit

在这里插入图片描述
但这里,其实还有很多参数可以选:

比如:只关心中等以上漏洞:则可以添加:

npm audit --audit-level=moderate

希望以json格式输出:

npm audit --json

希望以html格式输出:

npm i -g npm-audit-html 
npm audit --json | npm-audit-html

这里其实又个坑,上面的html这里方法,很多地方都有,但很可能使用之后html长这样:
在这里插入图片描述
table是空的:
这里的原因是:
在这里插入图片描述
所以要改成:

npm i -g npm-audit-html@beta
npm audit --json | npm-audit-html@beta --output report.html

关于漏洞修复

扫描您的项目中的漏洞,并自动为有漏洞的依赖项安装任何兼容更新:

npm audit fix

在不修改节点模块的情况下运行 audit fix,但仍然更新 pkglock:

npm audit fix --package-lock-only

跳过 devDependencies 更新:

npm audit fix --only=prod

使用 audit fix 安装 SemVer-major 更新到顶级依赖项,而不仅仅是只引入 SemVer-compatible :

npm audit fix --force

进行试运行以了解 audit fix 将要做什么,并以 JSON 格式输出安装信息:

npm audit fix --dry-run --json

这里是一个npm audit fix的经典例子:
https://www.jianshu.com/p/60591cfc6952

http://www.lryc.cn/news/186560.html

相关文章:

  • node.js知识系列(3)-每天了解一点
  • Zabbix监控系统 自定义监控项、自动发现与自动注册
  • Python信号之分享
  • 环信web、uniapp、微信小程序SDK报错详解---登录篇
  • DAZ To UMA⭐五.模型在Blender中的配置教程
  • 网络安全工具汇总
  • day-65 代码随想录算法训练营(19)图论 part 04
  • C++ - 完美语义(右值引用的中篇) - lambda表达式
  • 常见排序算法详解
  • 监控搭建-Prometheus
  • 指纹浏览器开发指南-EasyBR
  • qml入门
  • 一文熟练使用python修改Excel中的数据
  • java Spring Boot在配置文件中关闭热部署
  • 【物联网】Arduino+ESP8266物联网开发(一):开发环境搭建 安装Arduino和驱动
  • 自定义UI对象转流程节点
  • P1-P5_动手学深度学习-pytorch(李沐版,粗浅的笔记)
  • Android Studio修改模拟器AVD Manger目录
  • STM32--MQ2烟雾传感器
  • GitHub要求开启2FA,否则不让用了。
  • Python 编程基础 | 第三章-数据类型 | 3.6、元组
  • 2023/10/7 -- ARM
  • yolov5加关键点回归
  • untitle
  • 《论文阅读》监督对抗性对比学习在对话中的情绪识别 ACL2023
  • 2023-10-07 LeetCode每日一题(股票价格跨度)
  • 聊聊分布式架构04——RPC通信原理
  • 维吉尼亚密码
  • ubuntu20.04挂载拓展盘保姆级流程
  • 顶顶通电话机器人接口对接开源ASR(语音识别)