代码漏洞扫描工具sonarqube在本地环境的使用

发布时间 2023-12-08 12:13:23作者: 寒冰之光

sonarqube可以与源码管理工具gitlab集成,实现提交代码后自动扫描检测代码的相关漏洞。该CI/CD过程大致为:1、研发人员提交源码至gitlab服务器 —> 2、gitlab runner执行指定脚本(由项目的.gitlab-ci.yml配置文件指定具体内容,如编译项目、开启代码检测) —> 3、sonar-scanner对项目进行扫描,sonar-scanner将扫描结果发送至服务器进行查看。在上述过程3中,由于需要在gitlab服务器上通过sonar-scanner对项目进行编译,这就要求gitlab服务器能联网下载项目相关依赖包,否则只能提前将项目依赖包上传至gitlab服务器并在.gitlab-ci.yml的脚本中指定依赖包的本地位置。如果项目依赖发生变化,还得将新的依赖包上传服务器才能完成编译。因此在内网环境下,比较适合稳定没有太大变化的项目使用。且sonarqube社区版只支持主分支的检测,如果想要检测其他分支需要安装开发版或者企业版。

另外一种方式则是纯手工使用,阶段1、2都不要了,即在本地机器运行sonar-scanner,但是将扫描结果上传至sonarqube服务器统一管理查看。由于是本地编译,就不用考虑服务器能不能联网了。这种方式相对灵活,开发人员可以自行决定何时进行检测。以下给出使用步骤:

1、sonarqube服务器端搭建、分配账号(略);

2、登录sonarqube,新增项目-手工,输入项目的名字,选择本地:

 

 2、创建令牌

 3、选择要检测的项目的构建视乎,以.net为例:

 3、按照提示,复制对应的命令,在本地项目目录下执行即可(本例中的4行命令分别为:安装.net版本的scanner、开启检测任务、本地编译项目、检测+上传检测结果),完成后即可在服务器页面中查看检测结果: