docker搭建代码审计平台sonarqube

news2024/12/25 9:29:35

docker搭建代码审计平台sonarqube

      • 一、代码审计关注的质量指标
      • 二、静态分析技术分类
      • 三、sonarqube流程
      • 四、快速搭建sonarqube
      • 五、sonarqube scanner的安装和使用

一、代码审计关注的质量指标

  • 代码坏味道
    • 代码规范
    • 技术债评估
  • bug和漏洞
  • 代码重复度
  • 单测与集成
    • 测试用例数量
    • 覆盖率

二、静态分析技术分类

  • 代码静态检查
    • 代码分析:lint系列,通过分析语法树和源代码,检查代码规范
    • 编译器分析:借助于编译器获得代码关系
  • 字节码静态分析
    • 分析jar、war、dex等格式的文件,代表工具:fndbugs

三、sonarqube流程

在这里插入图片描述

四、快速搭建sonarqube

db_instance=postgres_prod
sonarqube_instance=sonarqube_prod
data_dir=/root/sonarqube
#创建数据目录
mkdir -p $data_dir
mkdir $data_dir/postgresql
mkdir $data_dir/sonarqube_data
mkdir $data_dir/sonarqube_extensions
mkdir $data_dir/sonarqube_logs
chmod -R 777 $data_dir

#创建网络
docker network create sonarqube
#启动pg数据库
docker run -d \
    --name $db_instance \
    --network sonarqube \
    -p 5432:5432 \
    -e POSTGRES_USER=sonarqube \
    -e POSTGRES_PASSWORD=sonarqube \
    -e PGDATA=/var/lib/postgresql/data/pgdata \
    -v $data_dir/postgresql:/var/lib/postgresql/data \
    postgres

sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192

#启动soarqube的产品部署
docker run -d \
    --name $sonarqube_instance \
    --network sonarqube \
    -p 9000:9000 -p 9092:9092 \
    -e SONARQUBE_JDBC_USERNAME=sonarqube \
    -e SONARQUBE_JDBC_PASSWORD=sonarqube \
    -e SONARQUBE_JDBC_URL="jdbc:postgresql://$db_instance/sonarqube" \
    -v $data_dir/sonarqube_data:/opt/sonarqube/data \
    -v $data_dir/sonarqube_extensions:/opt/sonarqube/extensions \
    -v $data_dir/sonarqube_logs:/opt/sonarqube/logs \
    sonarqube
    docker start sonarqube_prod
  • 查看日志:docker logs -f sonarqube_prod
  • 搭建完成后网页输入http://ip:9000/访问,默认用户名密码是admin,进入以后可以改密码,首页长这样
    在这里插入图片描述
  • 页面介绍:
    • project:项目tab,可以在里面创建一个项目
    • issues:报告出来的问题
    • rules:系统总共有多少规则需要配置
    • quality profiles:包含了一系列rules的配置文件,用于代码分析
    • quality gates:类似断言
    • administration:管理员面板
  • 安装插件
    • java常用插件有Checkstyle,Findbugs,PMD,SonarJS,SonarJava(后面这3个我找不到了,不知道是不是我版本太高了哈哈)
      在这里插入图片描述
  • 我们可以在/root/sonarqube/sonarqube_extensions/downloads查看到下载内容
    在这里插入图片描述
  • 下载完记得要重启
    在这里插入图片描述

五、sonarqube scanner的安装和使用

  • 安装scanner并配置环境变量
# 下载
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
/sonar-scanner-cli-5.0.1.3006-linux.zip
# 解压
yum -y install unzip
unzip sonar-scanner-5.0.1.3006-linux
# 修改conf配置的全局变量,改成自己的sonarqube地址,还有login密码并保存
cd sonar-scanner-5.0.1.3006-linux/
vim conf/sonar-scanner.properties 

在这里插入图片描述
在这里插入图片描述

# 配置环境变量
vim /etc/profile
# 添加上
SONARSCANNER_HOME=/root/sonarqube/sonarqube_extensions/downloads/sonar-scanner-5.0.1.3006-linux PATH=$PATH:$SONARSCANNER_HOME/bin
export SONARSCANNER_HOME PATH
# 使其生效
source /etc/profile
# 检查sonarscanner是否配置成功:
sonar-scanner -h

在这里插入图片描述

  • 使用sonar-scanner分析基础项目
# 下载sonar官方案例
git clone git@gitee.com:TheOctopus/sonar-scanning-examples.git
# 切换路径
cd sonar-scanning-examples
# 修改properties配置文件的前三个参数,projectVersion可以改成与项目一致的版本号并保存
cd /root/sonar-scanning-examples/sonarqube-scanner
vim sonar-project.properties

在这里插入图片描述

  • 进行分析
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF 图片显示某一部分区域

效果图&#xff1a; 代码&#xff1a; <Image Width"32"HorizontalAlignment"Right"Height"32"Source"../../Resources/Images/BLUEWOLF.jpg"><Image.Clip><PathGeometry><PathFigure StartPoint"32,32&quo…

区块链 | NFT 相关论文:Preventing Content Cloning in NFT Collections(三)

&#x1f436;原文&#xff1a; Preventing Content Cloning in NFT Collections &#x1f436;写在前面&#xff1a; 这是一篇 2023 年的 CCF-C 类&#xff0c;本博客只记录其中提出的方法。 F C o l l N F T \mathbf{F_{CollNFT}} FCollNFT​ and Blockchains with Native S…

基于springboot+mybatis+vue的项目实战之(后端+前后端联调)

步骤&#xff1a; 1、项目准备&#xff1a;创建数据库&#xff08;之前已经创建则忽略&#xff09;&#xff0c;以及数据库连接 2、建立项目结构文件夹 3、编写pojo文件 4、编写mapper文件&#xff0c;并测试sql语句是否正确 5、编写service文件 6、编写controller文件 …

二、双fifo流水线操作——verilog练习与设计

文章目录 一、案例分析二、fifo_ctrl模块设计2.1 波形设计&#xff1a;2.2 代码实现2.2.1 fifo_ctrl2.2.2 顶层文件top_fifo_ctrl&#xff08;rx和tx模块省略&#xff09;2.2.3 仿真文件tb_fifo_ctrl 2.3波形仿真 一、案例分析 案例要求&#xff1a;写一个 fifo 控制器&#x…

浅谈消息队列和云存储

1970年代末&#xff0c;消息系统用于管理多主机的打印作业&#xff0c;这种削峰解耦的能力逐渐被标准化为“点对点模型”和稍复杂的“发布订阅模型”&#xff0c;实现了数据处理的分布式协同。随着时代的发展&#xff0c;Kafka&#xff0c;Amazon SQS&#xff0c;RocketMQ&…

【EasySpider】EasySpider+mysql执行配置异常

问题 使用易采集工具操作时候&#xff0c;遇到一个执行异常&#xff0c;后来发现没有选择数据类型 Loading stealth.min.js MySQL config file path: ./mysql_config.json 成功连接到数据库。 Successfully connected to the database. Traceback (most recent call last):…

联发科技发布天玑9300+旗舰5G生成式AI芯片 | 最新快讯

5 月 7 日消息&#xff0c;联发科技今天举办了天玑开发者大会 2024。大会上&#xff0c;联发科技开启了“天玑 AI 先锋计划”&#xff0c;联合业界生态企业发布了《生成式 AI 手机产业白皮书》&#xff0c;分享了生成式 AI 端侧部署的解决方案“天玑 AI 开发套件”。同时&#…

WPF中页面加载时由于TreeView页面卡顿

示例&#xff1a;右侧界面的数据根据左侧TreeView的选项加载不同的数据&#xff0c;页面加载时会把所有的数据加载一遍&#xff0c;导致页面卡顿。 解决办法&#xff1a; <Setter Property"IsSelected" Value"{Binding IsSelected}"/>

【@ohos.events.emitter (Emitter)】

ohos.events.emitter (Emitter) 本模块提供了在同一进程不同线程间&#xff0c;或同一进程同一线程内&#xff0c;发送和处理事件的能力&#xff0c;包括持续订阅事件、单次订阅事件、取消订阅事件&#xff0c;以及发送事件到事件队列的能力。 说明&#xff1a; 本模块首批接…

Windows下安装人大金仓数据库

1、点击安装包进行安装 2、双击进行安装 3、点击确定 4、接着选择下一步 5、勾选接收 6、选择授权文件 7、显示授权文件信息 8、选择安装位置 9

SEO之高级搜索指令(二)

初创企业需要建站的朋友看这篇文章&#xff0c;谢谢支持&#xff1a; 我给不会敲代码又想搭建网站的人建议 新手上云 &#xff08;接上一篇。。。。&#xff09; 5 、inanchor: inanchor:指令返回的结果是导入链接锚文字中包含搜索词的页面。百度不支持inanchor:。 比如在 Go…

解读TO B软件企业财报:回看2023,展望2024

随着2023年全年财报的陆续公布&#xff0c;TO B软件企业的未来方向愈发清晰。这些企业不仅在技术革新、财务稳健、客户多元化、AI应用和全球化战略上取得了显著进展&#xff0c;更在激烈的市场竞争中展现出了顽强的生命力。 然而&#xff0c;这一切的成就并非没有代价&#x…

[虚拟机+单机]梦幻契约H5修复版_附GM工具

本教程仅限学习使用&#xff0c;禁止商用&#xff0c;一切后果与本人无关&#xff0c;此声明具有法律效应&#xff01;&#xff01;&#xff01;&#xff01; 教程是本人亲自搭建成功的&#xff0c;绝对是完整可运行的&#xff0c;踩过的坑都给你们填上了 视频演示 [虚拟机单…

领域驱动设计架构演进

领域驱动设计由于其强调对领域的深入理解和关注业务价值,其架构演进依赖于领域的变化和特定领域中的技术实践。 初始阶段 一个单体架构,所有的功能都集成在一个应用程序中,领域模型可能还不完全清晰,甚至并未形成。这个阶段主要是为了验证产品的可行性,快速迭代并尽快推…

开抖音小店需要交多少保证金?全类目选择,一篇了解

哈喽~我是电商月月 做抖音小店前大家都会搜索“入驻抖音小店需要准备什么东西&#xff1f;”其中就包含了一项&#xff1a;类目保证金的缴纳 那到底要交多少钱&#xff1f;很多新手朋友还是不太了解 今天我就给大家解答这个问题&#xff0c;首先&#xff0c;我们要知道抖店的…

华为eNSP综合实验-网络地址转换

实验完成之后,在AR1的g0/0/1接口抓包,查看地址转换 实现私网pc访问公网pc 实验命令展示 SW1: vlan batch 12 #创建vlan interface e0/0/1 #进入接口配置vlan端口 port link-type access port default vlan 12 q interface e0/0/2 #进入接口配置vlan端口 port link-type ac…

很好的Baidu Comate,使我的编码效率飞起!

文章目录 背景及简单介绍Baidu Comate安装功能演示总结 &#x1f381;写在前面&#xff1a; 观众老爷们好呀&#xff0c;这里是前端小刘不怕牛牛频道&#xff0c;今天牛牛在论坛发现了一款便捷实用的智能编程助手&#xff0c;就是百度推出的Baidu Comate。下面是Baidu Comate评…

20232810 2023-2024-2 《网络攻防实践》实验八

一、实践内容 1.1 恶意代码 1.1.1 简介 定义&#xff1a;恶意代码&#xff08;Malware,或Malicious Code&#xff09;指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。 指令集合&#xff1a;二进制执行文件、脚本语言代码、宏代码、寄生在文件或者启动扇区的指令…

CrossOver软件安装成功但找不到为什么 用 CrossOver 安装的 Windows 软件在哪

如果我们想要在 Mac 上安装 Windows 软件&#xff0c;除了安装双系统和安装虚拟机&#xff0c;更多的人会选择安装 CrossOver 这款非常好用的系统兼容软件。在用 CrossOver 安装的 Windows 软件之后&#xff0c;这些软件我们可以在哪里可以找到呢&#xff1f; 如果使用CrossOve…

数字人解决方案——AniPortrait音频驱动的真实肖像动画合成

概述 在当今数字化时代&#xff0c;将静态图像和音频素材转化为动态、富有表现力的肖像动画&#xff0c;已经成为游戏、数字媒体、虚拟现实等多个领域的重要技术。然而&#xff0c;开发人员在创建既具有视觉吸引力又能保持时间一致性的高质量动画框架方面面临着巨大挑战。其中…