使用SonarQube检测c++代码漏洞
今天我们来学习如何搭建SonarQube并使用SonarQube来检测c++的代码漏洞。
准备工作
- .dk11安装包
- sonar-scanner部分安装包
- 中文包sonar-l10n-zh-plugin-1.16
- cppcheck安装包
- mysql安装包(如果未涉及到数据库的代码检测,此部分可以不准备)
- 下载地址
注意事项
- SonarQube的版本,推荐安装7.9.1版本的,此版本支持较多插件,属于稳定版本,使用起来比较方便。
- 设置环境变量的时候,碰到过不生效的情况,如果按照流程操作无误,在仔细核对路径没有问题后,重启下电脑。重新拉起sonar服务,试一下,如果还不行,喝杯茶。笔者碰到过,头天晚上不生效,第二天就可以了的情况。
- 报错调试:在碰到报错时,用网页翻译一下,看下是什么报错,再根据报错信息解决问题。
- 每次重启电脑或者把sonar的服务关闭后,都要重新进入到bin目录下,重新把sonar的服务拉起来,才能在网页上访问到。否则的话,服务不在的。
安装步骤
-
1.安装jdk11
-
这里参考另外的一篇文章进行安装,此文写的十分详细,我在这里就不赘述了。
JDK11 JAVA11下载安装与快速配置环境变量教程
2.安装sonar
-
在安装好jdk11以后,我们再来装SonarQube的主体部分。
-
1.解压缩sonar主体程序到指定路径下,路径可随意选择,但路径中不要有中文。
-
2.放入中文包sonar-l10n-zh-plugin-1.16到安装目录下D:\Program Files\sonar\sonarqube-7.9.1\extensions\plugins(这个是我的安装路径)
-
3.接下来同理放入c++的规则,同样的目录下,放入sonar-cxx-plugin-1.3.1.1807.jar
3.安装sonar-scanner
-
1.解压sonar-scanner压缩包到指定位置,并复制路径,设置系统环境变量。
-
2.设置完成后,重新打开命令行 win+R cmd
-
3.输入sonar-runner -version,如果显示下图,则配置成功
4.安装cppcheck
-
1.本次我们同样将cppcheck安装在本地,所以同上,可以自由指定安装目录,但同样不要有中文(这个是我的安装目录)。
-
2.设置环境变量
-
3.完成后,点击确定,win+R 输入cmd,在命令行输入命令:cppcheck
-
4.如果出现如图效果,则配置成功。
5.安装mysql
因为我在安装的时候没有涉及到数据库代码的检测,我使用的sonar自带数据库,详细配置可以参考下sonar数据库相关配置。稍后我会补充此部分。
- 至此,所有配置完毕,如果有环境变量不生效,需要重启电脑即可。
相关配置
-
1.启动sonar
-
打开sonar安装目录下的StartSonar.bat,拉起sonar的服务
如图所示,即为正确拉起服务
2.然后打开浏览器,访问 http://localhost:9000
点击登录,默认账户名/密码:admin/admin
3.激活scm
4.规则配置
质量配置->创建 添加新的规则
激活更多规则
点击批量修改
选择刚刚添加的规则,点击应用,等待一下即可。
激活完毕后,可以在这里看到规则数量。
至此配置完毕,可以开始检测代码。
检测步骤
1.输入名称后,随意创建一个令牌
2.复制执行命令,到cmd中要检测的根目录下执行
3.返回网页刷新,即可看到分析结果
windows常用命令
参考文档
1.jdk安装参考
2.cpp安装,规则安装参考
3.sonar-scanner安装参考
4.配置选项中文说明