pipeline-安全测试
代码安全检查
- 需要安装SonarQube(版本6.7,安装了Findbugs插件)
- MySQL >=5.6,笔者安装的是MySQL 5.7版本
- Jenkins需要安装下列插件:
- SonarQube Scanner for Jenkins
- Sonar Quality Gates Plugin
注意点:
- Sonar需要配置"质量阈"
- Sonar需要配置"web回调接口"
- 具体script和declarative类型的pipeline代码请参见本文最后
依赖安全检查
- Jenkins需要安装以下插件
- Static Code Analysis Plug-ins
- OWASP_Dependency_Check
注意点:
- 关于搭建本地NVD镜像,这个是可以做到;如何使用本地镜像是个问题,不知道如何使用
- Doc只提到OWASP_Dependency_Check客户端可以使用本地镜像
查出的结果如下:
安全自动化
此部分目前暂时没有实现
- 目前有现成的security zap for pipeline插件(gradle)
- 且需要有现成的跑web自动化的代码
附件
- pipeline script
node {
stage('Build') {
echo 'Building....'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'global_credentials', url: 'http://***/Test-myown.git']]])
sh "mvn -DskipTests clean install package sonar:sonar"
def mvnHome = tool 'M3'
def gitDefault = tool 'gitDefault'
def jdkver = tool 'jdk8'
def mysonar = tool 'SonarQube Scanner 6.7'
echo "---${mvnHome}/bin/mvn---"
echo "---${gitDefault}---"
echo "---${jdkver}---"
echo "---${mysonar}---"
}
stage('SonarQube analysis') {
echo "starting codeAnalyze with SonarQube......"
withSonarQubeEnv {
sh 'mvn -DskipTests clean install package org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar'
}
}
stage('Quality Gate') {
timeout(3) {
def qg = waitForQualityGate()
echo "---before qg:${qg.status}---"
if (qg.status != 'OK') {
error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"
}
echo "---after qg:${qg.status}---"
}
}
stage('Dependency Check') {
dependencyCheckAnalyzer datadir: '', hintsFile: '', includeCsvReports: false, includeHtmlReports: true, includeJsonReports: false, includeVulnReports: true, isAutoupdateDisabled: false, outdir: '', scanpath: '', skipOnScmChange: false, skipOnUpstreamChange: false, suppressionFile: '', zipExtensions: ''
dependencyCheckPublisher canComputeNew: false, defaultEncoding: '', failedTotalHigh: '', healthy: '', pattern: '', unHealthy: ''
dependencyCheckUpdateOnly()
// dependencyTrackPublisher()--shibai失败,youchucuo有出错tishi
}
}
- pipeline declaractive
node {
stage('SCM') {
git credentialsId: 'global_credentials', url: 'http://***/Test-myown.git'
}
stage('SonarQube analysis') {
echo "starting codeAnalyze with SonarQube......"
withSonarQubeEnv {
sh 'mvn -DskipTests clean install package org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar'
}
}
stage('Quality Gate') {
timeout(3) {
def qg = waitForQualityGate()
echo "---before qg:${qg.status}---"
if (qg.status != 'OK') {
error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"
}
echo "---after qg:${qg.status}---"
}
}
}
参考: https://testerhome.com/topics/11326
pipeline-安全测试的更多相关文章
- Pipeline组测试说明
PIPELINE组测试报告 前言:我们组与学霸系统的其他两个小组共同合作开发,组成学霸系统的团体工作.作为学霸系统的一环,我们组起到承上启下的作用,因此,面向群体以及功能实现都是为给下一个组的工作做好 ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- (7)redis pipeline
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...
- redis学习笔记之pipeline
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...
- hadoop之计数器和管道的mrunit测试
引言 hadoop的调试真心让人灰常恼火,而且从企业实际出发,集群的资源是有限的,不可能在集群上跑一遍又一遍根据log去调试代码,那么使用MRUnit编写测试单元,显得尤为重要.MRUnit中的Map ...
- 分布式缓存Redis之Pipeline(管道)
Redis的pipeline(管道)功能在命令行中没有,但redis是支持pipeline的,而且在各个语言版的client中都有相应的实现. 由于网络开销延迟,就算redis server端有很强的 ...
- 【redis】pipeline - 管道模型
redis-pipeline 2020-02-10: 因为我把github相关的wiki删了,所以导致破图...待解决.(讲真github-wiki跟project是2个url,真的不好用) 因为用的 ...
- Redis学习笔记2-redis管道(pipeline)
redis的管道(Pipelining)操作是一种异步的访问模式,一次发送多个指令,不同步等待其返回结果.这样可以取得非常好的执行效率.这就是管道,调用方法如下: 来源:http://blog.csd ...
- 8.Jenkins进阶之流水线pipeline基础使用实践(1)
目录一览: 0x01 基础实践 (1) Maven 构建之 Pipeline Script (2) Maven 构建之 Pipeline Script from SCM (3) Jenkins pi ...
- elasticsearch系列(二) esrally压测
环境准备 linux centOS(工作环境) python3.4及以上 pip3 JDK8 git1.9及以上 gradle2.13级以上 准备过程中的坑 这些环境准备没什么太大问题,都是wget下 ...
随机推荐
- webpack学习笔记(三)
访问网址: https://github.com/webpack/analyse "scripts": { "dev-build": "webpack ...
- 使用fpm 方便快速生成postgresql extension分发包
fpm 是一个不错,而且强大的rpm.deb,系统启动服务工具包,我们可以用来快速的生成专业的软件分发包 演示一个pg 扩展包分发包的生成(rpm 以及deb) 安装fpm sudo gem inst ...
- 第二章 JavaScript文档(上)
JavaScript 1.JavaScript简介 起源 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成.Netscape在最初将其脚本语言命名 ...
- 引入public文件目錄下js/css文件
<link href="{{ URL::asset('css/ySelect.css') }}" rel="stylesheet" type=" ...
- AR外包,就找北京动点软件,长年承接AR外包(案例丰富可签合同,内附案例演示)
北京团队长年承接AR项目外包 咨询QQ:372900288 微信:liuxiang0884 以下是AR项目案例演示,索取更多案例请通过以上方式在线联系我们
- VUE 微信开发
1.工具 1.电脑版微信客户端window版本(1.x.x 亲测可以在谷歌浏览器进行微信授权登录,版本越来越好)或者用微信开发工具.很久之前就是用这个方法搞定用chrome进行微信登录授权. 2.us ...
- git 更新远程分支列表
git remote update origin --prune git remote update origin -p
- problem: vue之数组元素中的数组类型值数据改变却无法在子组件视图更新问题
问题:给父组件上的一个数组中的某个元素中的数组类型值,添加值后,数据没有在子组件上更新. 对元素添加值之后,vue的数据其实已经更新了并传给了子组件,子组件中没有立即更新. 那么这里有个问题,在子组件 ...
- getattribute
属性访问拦截器 class Itcast(object): def __init__(self,subject1): self.subject1 = subject1 self.subject2 = ...
- 推导式_字典_enumerate
字典推导式_enumerate: ''' 功能: 枚举, 拿出iter的每一个元素和索引(可以设置start改变) 组队放入一个元祖中返回 参数:iterable, start(指定索引开始的位置) ...