1027代码审计平台 1-sonar scanner
1.代码审计
1.1综合性的代码分析平台
- sonar支持自定义规则,较多的公司使用
- 360火线
1.2IDE辅助功能
- Xcode、Android studio
- 阿里巴巴Java开发手机ide插件支持
1.3独立的静态解析工具
- findbugs Java
- pmd 阿里巴巴Java开发手册pmd插件
- androidlint
通过分析语法树和源代码分析代码规范 - scan-build objectC
1.3.1静态分析技术分类
| 类别 | 示例 | 原理 |
|---|---|---|
| 代码检查 | lint系列 | 通过分析语法树和源代码分析代码规范 |
| 字节码检查 | findbugs为代表 | 通过分析编译器给出的调用链和二进制字节码的调用链寻找逻辑缺陷 |
1.4代码审计平台关注的质量指标
- 代码坏味道(代码规范、技术债评估)
- bug和漏洞
- 代码重复度
- 单测与集成(测试用例数量、覆盖率)
2.sonar系统搭建
2.1 sonar系统搭建
sonar对外公布2个端口,指定国内的下载镜像
#该命令不是标准部署,使用嵌入式数据库,所有的数据都在内存里,使用Java特有的内存型数据库。运行的时候在内存中模拟出一个数据库,该数据库非常小巧,只适合于测试
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 \
registry.docker-cn.com/library/sonarqube
2.2 标准部署
#此处依然采用的是内嵌型H2数据库,正式环境替换为mysql数据库
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar \
sonarqube
2.3下载sonar镜像
#下载最新镜像
docker pull registy.docker-cn.com/library/sonarqube
3.登陆sonar,查询本机用户信息
登陆sonar,http://localhost:9000
管理员信息:admin/admin token:c6ccba881916029ae8a0a73912c59c4de34a05e
普通用户信息:chenyi/1213456 token:4d8c4a1b76061d6a0b019fb97b472a8a2ede9397
3.1新建用户
Administration-Security-Users-Create User

填写用户名login和组名name

点击Token添加字段,生成Token

3.根据生成的token获取执行代码,留作备用
3.1 java+maven
mvn sonar:sonar \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=9c6ccba881916029ae8a0a73912c59c4de34a05e
3.2 Android:java+gradle
- 步骤一:在build.gradle开始添加如下代码
plugins {
id "org.sonarqube" version "2.6"
}
- 步骤二:执行
./gradlew sonarqube \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=9c6ccba881916029ae8a0a73912c59c4de34a05e
3.3 管理员设置选项
Administration-Configuration:可以针对语言,进行分析设置。以Java为例,可以设置JaCoCo、Junit选择路径

Administration-Security:用户权限修改,一般默认即可
Administration-Project:当前项目和后台任务
Administration-System:配置信息
Administration-Marketplace:存储了第三方的插件
4.sonar-scanner的使用
Analyzing+with+SonarQube+Scanner地址
4.1安装
- Mac:brew install sonar-scanner
- 下载根据平台下载或直接下载通用包,通用包需要设置环境变量


根据文档要求: - 1.解压
- 2.修改/conf/sonar-scanner.properties,添加sonar地址

- 3.添加环境变量
export SONAR_HOME=/Users/chenshanju/Desktop/docker/sonar-scanner-3.2.0.1227/
export PATH=$SONAR_HOME/bin/:$PATH
- 4.帮助
-D 参数 -H 帮助 -V 版本 -X debug 调试
4.2下载示例
git clone https://github.com/SonarSource/sonar-scanning-examples.git
4.3执行
注意:切换到sonar-project.properties所在的目录,即/sonar-scanning-examples/sonarqube-scanner/
- 方法1;使用项目自带的sonar-project.properties
sonar-sanner #输入sonar-scanner即开始运行
sonar-project.properties内容
sonar.projectKey=org.sonarqube:sonarqube-scanner #公司名:个人
sonar.projectName=chengyi1336 #项目名称
sonar.projectVersion=1.0 #版本号
sonar.sources=src,copybooks
sonar.sourceEncoding=UTF-8
## Cobol Specific Properties
# comma-separated paths to directories with copybooks
sonar.cobol.copy.directories=copybooks
# comma-separated list of suffixes
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy
## Flex Specific Properties
# retrieve code coverage data from the Cobertura report
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml #所有关于覆盖率的文件都从该文件读
# PL/I Specific Properties
sonar.pli.marginLeft=2
sonar.pli.marginRight=0

- 方法2.使用命令行指定projectKey,projectName,url,token
切换到工程目录下面,指定项目名、项目路径、主机、token
sonar-scanner \
-Dsonar.projectKey=com.ali:chenyi \
-Dsonar.projectName=chenyi1111 \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=4d8c4a1b76061d6a0b019fb97b472a8a2ede9397

bug 3个,0个漏洞,24个不规范代码,1.2%的代码覆盖率,25.4%的重复度,xml、python、PHP、JS、Flex有631个问题。
5.覆盖率
覆盖率读取文件在/sonarqube-scanner/coverage-report/coverage-cobertua-flex.xml。这种方式比较老,很少使用
2:34之前需要补充
5.更多sonarscanner信息请查看官网
https://docs.sonarqube.org/display/SCAN/Advanced+SonarQube+Scanner+Usages
1027代码审计平台 1-sonar scanner的更多相关文章
- 1027代码审计平台 3 Java maven
使用成熟的构建工具对maven工程进行分析 官网:SCAN/Analyzing+with+SonarQube+Scanner+for+Maven 1.如下图修改settings.xml文件 1.1查看 ...
- 1027代码审计平台 2-sonarscanner项目变更
修改version,可以获得新版本的解析数据,与以往结果比对,获取bug.漏洞.代码不规范.覆盖率等变化,重点关注新增的bug及问题分布 version参数修改 1.对sonar-project.pr ...
- sonar使用故障Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher/Unable to load component interface org.sonar.api.batch.rule.ActiveRules: NullPointerException
nginx后两个sonar负载分担 解决办法 Credit to @teryk-sonarsource-team, just making it an answer: Delete the direc ...
- 解决Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher/Unable to load component interface org.sonar.api.batch.rule.ActiveRules: NullPointerException
解决办法 Delete the directory data/es in your SonarQube installation. Restart SonarQube.
- 持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知
持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知 一:Sonar是什么?Sonar 是一个用于代码质量管理的开放平台,通过插件机制,Sonar 可以集成不同的测试工具 ...
- Linux下SonarQube代码质量平台的安装和使用方法
Sonar简介: Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,Java ...
- Jenkins之Sonar 代码检查
一.简介 SonarQube 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等 ...
- 代码规范审查 -Sonar环境搭建
Sonar概述 Sonar 是一个用于代码质量管理的开放平台,可以进行代码质量的持续跟踪审查,支持的语言包含C#.java.PHP.C等.可以通过UI一睹Sonar的强大之处. Sonar安装 ...
- Jenkins集成Sonar Quabe和权限配置
目录 安装Sonar Jenkins配置sonar Maven Jenkins Job配置 Pipeline Jenkins Job配置 Sonar权限管理 Sonar quality Gate通过阈 ...
随机推荐
- 【转】集群/分布式环境下5种session处理策略
转载至:http://blog.csdn.net/u010028869/article/details/50773174 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处 ...
- bzoj 2818 gcd 线性欧拉函数
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 给定整数N,求1< ...
- XML_Qt_资料
1.QXmlQuery Class _ Qt XML Patterns 5.7.html http://doc.qt.io/qt-5/qxmlquery.html ZC: evaluateTo(QAb ...
- git 设置 代理服务器
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080 git config --global h ...
- 运行MySQL远程连接
方法一:修改MySQL自带的“mysql”数据库中的“USER”表 USE mysql; UPDATE USER SET HOST='%' WHERE USER='root'; SELECT * FR ...
- git 基础入门操作
前言: 介绍基础的git入门级指令,虽然git指令非常多,但是实际工作中,我们会用到的非常少,小项目中甚至只需要用到2.3个.而且大部分人都会采用gui,而不是每次都打开终端然后输一长串难记的指令. ...
- iOS面试准备之思维导图(转)
以思维导图的方式对iOS常见的面试题知识点进行梳理复习. 目录 1.UI视图相关面试问题 2.Runtime相关面试问题 3.内存管理相关面试问题 4.Block相关面试问题 5.多线程相关面试问题 ...
- OMAP4之DSP核(Tesla)软件开发学习(四)ARM核与DSP核通讯示例
首先,安卓系统完全启动4AJ.2.1. 其次,查看OMAP4的Tesla相关信息,检查Tesla是否使能.(有如下显示,则OK) cat /d/emoteproc/omap-rproc.0/versi ...
- Centos7 安装JDK环境和Tomcat
Linux JDK 64位下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.ht ...
- 转:HTTP Get请求URL最大长度
转自:http://blog.csdn.net/M_ChangGong/article/details/5764711 各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过 ...
