基于SonarQube的自动化代码缺陷检测:WebGoat实战(一)
字数 1136 2025-08-18 11:37:07

基于SonarQube的自动化代码缺陷检测:WebGoat实战教学文档

一、环境准备

1.1 硬件要求

  • 推荐使用阿里云ECS实例
  • 配置建议:2CPU、8G内存、40G硬盘、2M带宽
  • 小技巧:可使用"竞价实例"降低成本

1.2 软件基础

  • 已搭建基于SonarQube的自动化安全代码检测平台
  • 需要SVN版本控制系统
  • 需要Jenkins持续集成工具
  • 需要Maven构建工具

二、获取WebGoat源码

2.1 下载源码

  • 访问GitHub发布页面:https://github.com/WebGoat/WebGoat/releases
  • 下载最新版本的WebGoat 8源码压缩包

2.2 清理测试环境

  1. 通过SVN更新本地代码库
  2. 删除原有的HelloWorld测试代码
  3. 提交删除操作到SVN服务器

三、上传WebGoat源码

  1. 解压下载的WebGoat 8源码到本地SVN工作目录
  2. 在根目录上右键选择"SVN Commit"
  3. 将所有文件上传到SVN服务器

四、配置SonarQube插件

4.1 安装FindBugs插件

  1. 登录SonarQube控制台:http://ip:9000
  2. 导航到"配置" > "应用市场"
  3. 搜索"findbug"插件
  4. 点击"安装"并等待完成
  5. 按提示重启SonarQube服务

4.2 配置质量规则

  1. 找到Java和JSP相关的质量配置
  2. 将Findbugs设置为"默认"规则集

五、配置Jenkins任务

5.1 创建Maven任务

  1. 登录Jenkins控制台
  2. 新建一个Maven项目

5.2 任务配置详情

a. General配置

  • 可保留默认项目名称或自定义

b. 源码管理

  • 选择SVN作为源码管理工具
  • 配置之前上传WebGoat的SVN仓库地址

c. Post Step配置

  • 选择"Execute SonarQube Scanner"
  • 配置Analysis properties如下:
sonar.projectKey=my:WebGoat  # SonarQube UI中显示的名称
sonar.projectName=webgoat
sonar.projectVersion=1.3.12
sonar.sources=.
sonar.java.binaries=.
# sonar.sourceEncoding=UTF-8  # 可选,设置源码编码

六、执行分析

  1. 保存Jenkins任务配置
  2. 立即构建项目
  3. 在Console Output中监控构建过程
    • 首次构建时间较长
    • 成功完成会显示"success"提示

七、分析检测结果

  1. 访问SonarQube控制台
  2. 查看WebGoat项目的分析结果
  3. 检查识别出的代码缺陷和安全问题

八、后续工作

  1. 对检测出的缺陷进行深入分析
  2. 可加入讨论群持续交流(联系作者微信:fantastic103)
  3. 可邮件索取实验镜像(tangjf10@aliyun.com)

注意事项

  1. 插件安装可能因网络问题失败,可重试安装
  2. 确保SonarQube有足够内存运行分析
  3. 首次分析可能需要较长时间,请耐心等待

致谢

本教学基于以下贡献者的工作:

  • 北京理工大学计算机学院计卫星教授
  • 研究生高志伟
  • "滇峰技术"团队
基于SonarQube的自动化代码缺陷检测:WebGoat实战教学文档 一、环境准备 1.1 硬件要求 推荐使用阿里云ECS实例 配置建议:2CPU、8G内存、40G硬盘、2M带宽 小技巧:可使用"竞价实例"降低成本 1.2 软件基础 已搭建基于SonarQube的自动化安全代码检测平台 需要SVN版本控制系统 需要Jenkins持续集成工具 需要Maven构建工具 二、获取WebGoat源码 2.1 下载源码 访问GitHub发布页面:https://github.com/WebGoat/WebGoat/releases 下载最新版本的WebGoat 8源码压缩包 2.2 清理测试环境 通过SVN更新本地代码库 删除原有的HelloWorld测试代码 提交删除操作到SVN服务器 三、上传WebGoat源码 解压下载的WebGoat 8源码到本地SVN工作目录 在根目录上右键选择"SVN Commit" 将所有文件上传到SVN服务器 四、配置SonarQube插件 4.1 安装FindBugs插件 登录SonarQube控制台:http://ip:9000 导航到"配置" > "应用市场" 搜索"findbug"插件 点击"安装"并等待完成 按提示重启SonarQube服务 4.2 配置质量规则 找到Java和JSP相关的质量配置 将Findbugs设置为"默认"规则集 五、配置Jenkins任务 5.1 创建Maven任务 登录Jenkins控制台 新建一个Maven项目 5.2 任务配置详情 a. General配置 可保留默认项目名称或自定义 b. 源码管理 选择SVN作为源码管理工具 配置之前上传WebGoat的SVN仓库地址 c. Post Step配置 选择"Execute SonarQube Scanner" 配置Analysis properties如下: 六、执行分析 保存Jenkins任务配置 立即构建项目 在Console Output中监控构建过程 首次构建时间较长 成功完成会显示"success"提示 七、分析检测结果 访问SonarQube控制台 查看WebGoat项目的分析结果 检查识别出的代码缺陷和安全问题 八、后续工作 对检测出的缺陷进行深入分析 可加入讨论群持续交流(联系作者微信:fantastic103) 可邮件索取实验镜像(tangjf10@aliyun.com) 注意事项 插件安装可能因网络问题失败,可重试安装 确保SonarQube有足够内存运行分析 首次分析可能需要较长时间,请耐心等待 致谢 本教学基于以下贡献者的工作: 北京理工大学计算机学院计卫星教授 研究生高志伟 "滇峰技术"团队