Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SonarQube 安全审计及服务搭建实战

SonarQube 安全审计及服务搭建实战

原创
作者头像
攻城狮的那点事
修改于 2025-05-13 01:22:02
修改于 2025-05-13 01:22:02
12100
代码可运行
举报
运行总次数:0
代码可运行

为什么今天要推荐SonarQube呢?这话题要从一次客户的项目交付说起。当时服务要部署入驻到客户方的机房,按要求向信息中心提交申请后,却被告知需提供《服务器安全漏洞扫描报告》和《代码安全审计报告》。按照惯例,这些报告一般由第三方做网络安全的公司提供,但谁知客户不想花钱找第三方公司,最后商量要我方用开源工具扫描,并修复完向他们提供报告。这如何是好,做与不做? 似乎没有选择,必须做。

开始找开源的质量管理工具。找了好多款开源质量管理工具(如:Cobra,CodeClimate等),安装部署、扫描及界面不友好、难使用等各种问题。由于本人以前在外企的工作经验,那时同事提供过来的代码检查报告,文档及内容展示等比较友好,能快速定位问题,由处理意见等,我似乎进入寻找曾经的那个“样子”,最终,SonarQube满足了需求。

SonarQube,一款用于代码质量管理的开源工具,是静态代码检查工具。可以很多开发语言,如:php,java, C#, go,C/C++, Cobol, JavaScrip, Groovy 等。

Sonar代码扫描,到底能检测什么?

检测项

描述

代码规范

通过Findbugs,PMD,CheckStyle等检查代码是否符合规范。

潜在的缺陷

可通过Findbugs,PMD,CheckStyle等代码规则检测潜在的缺陷

复杂度分布

检测文件、类、方法的复杂度分布,过高或过低的复杂度都会影响代码的可维护性‌。

重复编码

程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

代码注释问题

若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读。

测试覆盖率

Sonar可以很方便地统计并展示单元测试覆盖率。

糟糕的设计

通过检测循环、类之间的相互依赖关系等,帮助发现设计上的问题‌。

SonarQube中的重要组件

组件

说明

SonarScanner

扫描器,负责将源文件进行代码分析,并将分析后的报告发送给SonarQube服务器

SonarQube Server

SonarQube服务器,负责处理分析报告,后台管理等

Database server

数据库服务器,负责存储数据

SonarQube环境搭建

这里我以我搭建的SonarQube 7.6为例,介绍安装使用的过程。

1,Java环境

SonarQube 是一个基于 Java 的应用程序,因此首先需要确保你的服务器系统上安装了 Java环境。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
命令行命令java -version

这里建议使用Java11,我们的开发的Java版本,用的就是OpenJDK 11。

2,安装数据库

SonarQube 服务器支持数据库支持PostgreSQL, MySQL, Oracle等,这里我使用的是Mysql。由于SonarQube 7.6支持的MySql版本,需大于等于5.6,小于8.0。导致测试服务器上的Mysql8不能直接使用,只能新安装了一个Mysql5.7,供Sonar服务使用。

关于Mysql的安装过程,这里不做描述。

3,SonarQube服务配置

本次主要是在Windows系统下的操作。
1),下载SonarQube
首先,下载并解压SonarQube后,即可进入bin目录启动,Sonar兼容Mac、Linux、Windows系统,不同系统进入对应的目录启动即可。
2),sonar.properties配置

打开SonarqQube安装目录,修改\conf\sonar.properties文件,指定连接的数据库、用户名、密码,不同的数据库修改对应的jdbc连接、用户名密码等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
配置信息  sonar.jdbc.username=sonar sonar.jdbc.password=Mysql@sonardb!  sonar.jdbc.url=jdbc:postgresql://localhost:3306/sonar?......... 

3),启动SonarqQube服务

在 SonarQube 的根目录下,找到启动服务脚本,执行启动。Windows系统,进入...\sonarqube-7.6\bin\windows-x86-64目录,双击StartSonar.bat即可启动。

4),访问 SonarQube Web 界面

服务启动成功后,在浏览器http://localhost:9000,默认用户名密码:admin/admin。

到这里,你就可以准备配置Sonar代码扫描啦。

4,SonarScanner 配置

下载安装Sonar-scanner-3.3.0,然后进入安装目录....\sonar-scanner-3.3.0.1492-windows\conf\,配置 sonar-scanner.properties,添加几行配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
配置信息   sonar.host.url=http://127.0.0.1:9000  sonar.login=admin  sonar.password=admin 

配置环境变量:

1),建SONAR_SCANNER_HOME,值:...\Sonar-Scanner\sonar-scanner-3.3.0.1492-windows

2),PATH后加%SONAR_SCANNER_HOME%\bin;

5,SonarQube 创建项目

访问http://localhost:9000,登录SonarQube 服务,创建要分析的软件项目。

6,执行Sonar分析

配置sonar-scanner.properties 全局参数设置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   sonar.projectKey=test   
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   sonar.projectName=test
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   sonar.projectVersion=1.0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   sonar.sources=src/main/java
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   sonar.java.binaries=target/classes
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   sonar.login=6c8148e18e76fbc96e73354

打开cmd,进入你要扫描的项目所放磁盘的根目录,执行Sonar-Scanner。

如果命令行显示以上输出,则扫描成功。

7,在SonarQube中查看结果

打开SonarQube,进入前面创建的项目,查看检查结果。

8,生成pdf报告

下载插件地址:https://gitee.com/zzulj/sonar-pdf-plugin/releases,从3.0.xfor7.0 的分支获取,将下载好的jar包放在D:\....\sonarqube-7.6\extensions\plugins,目录下:

放好后,重启startsonar.bat,重新扫描刚才的代码,进入主页,就会出现more的标签。

Sonar PDF报告样例:

关于SonarQube的代码检测分析,今天就写到这里。当然在SonarQube服务实际搭建的过程中,还会有很多的问题需要处理,这里不做一一的赘述,如果你关系或想了解更多的相关内容,可关注此公众号,在我的获取本人联系方式,进行一对一交流讨论,欢迎骚扰!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SonarQube——如何搭建SonarQube完整版
选择7.6是因为,比他高的版本已经移除了mysql,最新版可取官网去下载。 安装包 | 软件包 JDK | 1.8 Maven | 3.6.0 MySQL | 5.7
思索
2024/08/16
2990
SonarQube——如何搭建SonarQube完整版
SonarQube 安全报告生成工具安装配置使用教程(Windows 系统)
SonarQube 是一个强大的静态代码分析平台,能够帮助开发者检测代码质量、漏洞、安全问题等。以下是如何在 Windows 系统上安装和配置 SonarQube 的详细步骤。
猫头虎
2024/11/18
3.5K1
SonarQube 安全报告生成工具安装配置使用教程(Windows 系统)
代码质量管理平台实战|SonarQube 安装、配置及 JaCoCo、Maven 集成
SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 SonarQube。此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。 官方网址:https://www.sonarqube.org/ 通过插件形式,可以支持包括 Java,C#,C/C++、PL/SQL、Cobol、JavaScrip、Groovy、Ruby 等二十五种编程语言的代码质量管理与检测,针对不同的编程语言其所提供的分析方式也有所不同:对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能;对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能。 SonarQube 支持多种客户端集成方式,包括但不限于 Scanner 客户端、Ant、Gradle、Maven、Jenkins、IDEA 插件等。比较常用的为 Gradle 和 Maven。 SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果(例如 CheckStyle、JaCoCo 等)直接展现给客户,而是通过不同的插件算法来对结果进行再加工,并最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理,以便进行有针对性的代码修复或重构。 SonarQube 在进行代码质量管理时,会从以下的七个纬度对项目代码质量进行分析。 Sonar 实际上是一个 Web 系统,展现了静态代码扫描的结果,结果是可以自定义的,而真正实现代码扫描的是 Sonar Scanner 这个工具,另外同时支持多种语言的原理是它的扩展性,通过插件实现的,也就是 Java Jar 架包,可以在 Sonar 平台上在线安装或者离线安装。 1.已安装 JDK1.8 环境 2.已安装 Maven(用于后期与 SonarQube、JaCoCo 的集成) 3.已安装 MySQ L数据库(Sonar 默认的数据库是自带 H2 数据库,是很小的嵌入式数据库引擎,这里的配置换成了 MySQL,为了方便通过数据库客户端进行数据查询) 1.下载 SonarQube,地址为: Download | SonarQube 2.配置数据库(下面的SQL是指定了schema为sonar,password为sonar,其中第四条SQL是localhost是因为MySQL安装在本地) 3.安装 SonarQube I. 将下载的 sonar-3.7.zip 包解压至 Windows某个路径,如 D:\Tools\sonar(如是其他OS,请选择对应路径,如Linux的/usr/local/等)。 II. 修改 sonar.properties 在 /conf/sonar.properties 文件中,配置数据库设置(默认已经提供了各类数据库的支持这里使用 MySQL,因此取消 MySQL 模块的注释),同时因为端口冲突而改成端口为 11000。 III.在 /bin/ 目录下,运行 /windows-x86-64/StartSonar.bat (因为本 demo 是在 win10 64位安装的,如果是 Linux 的话,运行 nohup bash sonar.sh start &) IV. 访问 http://localhost:11000,如果不是本机就输入 http://[remote IP]:11000,如果你看到下图所示即证明配置成功。 4.用 admin/admin(默认)进行登录,并安装汉化包 Chinese pack installation Chinese pack restart Chinese pack restart confirm Well done!
霍格沃兹测试开发
2022/05/26
1.6K0
SonarQube和Sonar-Scanner的安装与使用
sonar是搞代码质量测试的一款开源工具。SonarQube是sonar的Web服务端,用来发布应用和在线浏览(分析),sonar-scanner用于扫描源码, 将代码写入数据库之类的地方,便于sonarqube进行分析
江涛学编程
2021/12/15
2.3K0
SonarQube和Sonar-Scanner的安装与使用
用SonarQube检查C语言代码规范
用SonarQube进行JAVA语言代码规范的文章在网上不少,但是介绍非JAVA语言(比如C语言)的不多,在这里我们以C语言给大家介绍(Windows环境)。
顾翔
2020/06/28
4.6K0
SonarScanner有效检查代码质量
sonar 是一个用于代码质量管理的开放平台,支持Windows、Linux、Mac。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具以及持续集成工具,与持续集成工具不同,Sonar 并不是简单地把不同的代码检查工具结果直接显示在 WEB页 面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便的不同规模和种类的工程进行代码质量管理。
BUG弄潮儿
2022/04/15
9000
SonarScanner有效检查代码质量
搭建 sonarqube 代码质量扫描环境
最近在给公司搞代码质量管理,因为之前出了线上事故,以前都没人关注的,代码风格五花八门,尤其是前端代码,因为最新的 TypeScript 是支持类型注释的,而很多前端程序员使用 JS 时间比较长,一下子适应不过来,写代码时不做类型检查、不做异常判断,把 BUG 都抛给浏览器,这就导致项目可靠性差、安全度低、可维护性极差。因此借着这个机会,把祖传代码也规范一下。
星星在线
2022/04/27
2.3K0
搭建 sonarqube 代码质量扫描环境
搭建基于SornaQube的自动化安全代码检测平台
  近年来,随着新业务、新技术的快速发展,应用软件安全缺陷层出不穷。虽然一般情况下,开发者基本都会有单元测试、每日构建、功能测试等环节来保证应用的可用性。但在安全缺陷方面,缺乏安全意识、技能和工具,最终导致了安全缺陷的出现。
星哥玩云
2022/07/26
9150
搭建基于SornaQube的自动化安全代码检测平台
【DevOps实践】5. Jenkins流水线集成SonarQube做代码质量分析
本文讲解使用SonarQube和SonarQube Scanner如何配合做代码检查配置,并完成所有部署实践。
辉哥
2021/03/22
7.8K0
使用了这个神器,让我的代码bug少了一半
最近一段时间,我们团队在生产环境出现了几次线上问题,有部分比较严重,直接影响用户功能的使用,惹得领导不高兴了,让我想办法提升代码质量,这时候项目工程代码质量检测神器——SonarQube,出现在我们的视线当中。
苏三说技术
2020/11/17
2.3K0
使用了这个神器,让我的代码bug少了一半
白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
安装过程主要分为两部分,一个是主程序 sonarqube,一个是 sonarScanner 插件,两个都安装配置好后就可以进行代码扫描了。sonarqube 在配置数据库的过程中会碰到很多问题,第二章专门针对这些问题来进行讲解。
小蓝枣
2020/09/24
2.5K0
白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
Windows环境从零搭建SonarQube 7.4(稳定版)
解压后需要安装3个插件,分别是汉化插件、多分支管理插件、集成阿里p3c插件,外加配置一个Mysql数据库
夹胡碰
2020/11/03
1.8K0
Windows环境从零搭建SonarQube 7.4(稳定版)
基于Win10极简SonarQube C#代码质量分析
博客有些好些时间未更新了,这几个月的时间里,离开了实习的公司、大学毕了业、来了新公司、转了户口,有点忙,最近总算稍微闲下来了,打算重新拾起博客,坚持写下去。
码农阿宇
2018/08/11
8130
基于Win10极简SonarQube C#代码质量分析
规范-使用sonarqube+sonarq scan+MySQL完成代码规范的检查
如果一个公司没有一套代码规范的话,这必然会导致项目后期迭代和维护变得困难,而且会出现很多的重复代码、坏味道、有bug、有漏洞。没有代码规范,还可能由于没测试到,上线后出现一些致命的错误,如:连接没释放,占用更多内存等等..
秋日芒草
2019/06/24
1.3K0
Jenkins+SonarQube实现Python项目静态扫描
在DevOps理念中,CI/CD毫无疑问是最重要的一环,而代码质量检查则是CI中必不可少的一步。在敏捷开发的思想下,代码的迭代周期变短,交付速度提升,这个时候代码的质量就很难保证。
TestOps
2022/04/07
1.8K0
Jenkins+SonarQube实现Python项目静态扫描
SonarQube搭建手记
这篇文章记录的是SonarQube服务搭建的详细过程,应用于云迁移后的PipleLine的代码扫描环节。
Throwable
2020/06/23
1.2K0
SonarQube+Scanners代码质量管理
sonarqube安装很简单,下载(直接win下载,然后上传到linux服务器)安装包后直接解压即可:
阿dai学长
2019/04/03
8920
SonarQube+Scanners代码质量管理
SonarQube基础介绍与在代码检测中的应用
官网描述: SonarQube 提高您的团队成员的代码质量和安全性,使所有开发人员能够编写更干净、更安全的代码。 官网地址: https://www.sonarqube.org/ 帮助文档: https://docs.sonarqube.org/latest/
全栈工程师修炼指南
2022/09/29
5.6K0
SonarQube基础介绍与在代码检测中的应用
一文搞定SonarQube接入C#(.NET)代码质量分析
C#语言接入Sonar代码静态扫描相较于Java、Python来说,相对麻烦一些。Sonar检测C#代码时需要预先编译,而且C#代码必须用MSbuid进行编译,如果需要使用SonarQube对C#进行代码质量分析,则需要下载Sonar-Scanner-MSBuild和MSBuild,其中要求MSBuild在V14.0以上。
测试开发技术
2020/01/17
5.8K0
一文搞定SonarQube接入C#(.NET)代码质量分析
CI&CD夺命十三剑7-代码质量扫描工具SonarQube原理及环境搭建
静态代码扫描是CI/CD中重要的一环,可以在代码提交到代码仓库之后,在CI/CD流程中加入代码扫描步骤,从而及时地对代码进行质量的检查。这可以有效地降低后期维护成本,优化产品质量,提高产品交付速度。同时,静态代码扫描还可以将代码问题自动通知给开发人员,使得问题得到及时发现和解决。
大刚测试开发实战
2023/08/29
3.8K0
CI&CD夺命十三剑7-代码质量扫描工具SonarQube原理及环境搭建
推荐阅读
相关推荐
SonarQube——如何搭建SonarQube完整版
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档