Skip to content

🔒 SonarQube 快速入门

📌 常见安全检查工具概述

何时使用工具说明用法
部署前SonarQube安全 & 质量检查部署服务,Jenkins 通过命令调用
部署前OWASP Dependency-Check根据漏洞库做依赖扫描插件
运行中AppScan漏洞扫描工具部署并扫描
运行中AWVS漏洞扫描部署并扫描
运行中Nessus漏洞扫描部署并扫描
运行中HM(河马)漏洞扫描 & WebShell 检测部署二进制
运行中绿盟、奇安信、云安全中心等漏洞扫描 & 安全防护部署并扫描
运行中Trivy、Clair 等容器扫描工具容器环境漏洞 & 配置扫描容器化部署

什么是 SonarQube

SonarQube 是一个开源的代码质量管理系统,能够检测代码中的错误、漏洞与规范问题。
它可与 GitLab、Jenkins 等 CI/CD 工具集成,实现持续的代码检查与报告。


📝 SonarQube 快速入门

一、环境准备

服务IP配置
SonarQube10.0.0.732C2G
MySQL 5.710.0.0.722C2G
Docker 镜像

二、启动数据库(MySQL 5.7 Docker 容器)

bash
docker run -d \
  --name mysql-sonar \
  -e MYSQL_ROOT_PASSWORD=你的Root密码 \
  -e MYSQL_DATABASE=sonarqube \
  -e MYSQL_USER=sonar \
  -e MYSQL_PASSWORD=sonar \
  mysql:5.7
### 三、部署 SonarQube
1. **下载并解压 SonarQube**

```plain
wget https://binaries.sonarsource.com/CommercialDistribution/sonarqube/sonarqube-9.9.0.65466.zip
unzip sonarqube-9.9.0.65466.zip -d /opt/
mv /opt/sonarqube-9.9.0.65466 /opt/sonarqube
  1. 编辑数据库连接配置
    打开 /opt/sonarqube/conf/sonar.properties
plain
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://10.0.0.72:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
  1. 启动 SonarQube
plain
su - sonar
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
  1. 验证 SonarQube
    打开浏览器访问 http://10.0.0.73:9000
    默认管理员账号/密码:admin / admin

dev

四、Jenkins 集成(可选)

在 Jenkins 上安装 SonarQube Scanner 插件,配置:

  • SonarQube 服务器http://10.0.0.73:9000
  • Server Authentication Token:在 SonarQube UI → Administration → Security → Generate Token

在 Jenkins Pipeline 中加入扫描步骤:

plain
stage('SonarQube Analysis') {
  steps {
    withSonarQubeEnv('MySonarQube') {
      sh 'sonar-scanner -Dsonar.projectKey=my-project -Dsonar.sources=.'
    }
  }
}

📝 Sonar & Jenkins 自动分析 前端 China 项目

bash
# 解压 Sonar Scanner
unzip sonar-scanner-cli-4.7.0.2747-linux.zip -d /app/tools/

# 创建软连接
ln -s /app/tools/sonar-scanner-4.7.0.2747-linux/ /app/tools/sonar-scanner

# 配置全局环境变量
export PATH=/app/tools/sonar-scanner/bin:$PATH
b. SonarQube UI 新建项目并获取 Token
项目名:webtest

Token:9b61b57e6d7640c590e21b6e823398f723695ea0

c. Jenkins 构建 Shell 配置
bash
复制
编辑
# 加载全局环境变量
source /etc/profile

# 前端依赖安装与打包
npm i
npm run build

# 运行 SonarQube 扫描
sonar-scanner \
  -Dsonar.projectName=${JOB_NAME} \
  -Dsonar.projectKey=${JOB_NAME} \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://sonar.oldboylinux.cn:9000 \
  -Dsonar.login=9b61b57e6d7640c590e21b6e823398f723695ea0
d. 分析效果
 SonarQube 项目界面查看代码质量报告

 Jenkins 控制台查看扫描日志和扫描结果

dev

📘 本文档由 www.linuxpath.cn 整理
🚀 完善代码质量,保障生产安全!

感谢阅读,欢迎交流!