网站首页 > 开源技术 正文
DevOPS | 代码静态扫描工具SonarQube的安装和初步使用 基本上照着这篇文章去做,我们基本能做代码的静态扫描了。但是在实际落地过程,我们还需要做一些额外的配置以提高安全性等。
配置扫描规则
比如以Java的Sonar Way为例,默认有391条规则,然后又分为Blocker、Critical、Major、Minor和Info等级别。在实际使用过程中,为减少开发人员的抵触情绪和误报,一般我们可以只开启严重的级别,比如我这里只使用了Blocker和Critical,其他的暂时不开启了。
使用管理员账号登录Sonar,然后单击上方的Quality Profiles,我们选择Copy复制现有的Sonar way进行修改:
并输入新名称Demo Sonar way,保存后,直接跳入Demo Sonar way的配置页面。
首先我们将这个profile设置为默认的扫描:
然后点击左侧的规则进入是否激活页面:
接着选择需要取消的级别(Major、Minor和Info),并点击Bulk Change进行更改:
最后点击应用即可。
配置sonar项目的默认权限
默认情况下,Sonar项目的权限是public,也就是任何能登录Sonarqube的用户可以看到所有项目的问题和源码,这对于代码安全来说不可接受的。解决这个问题的方法,就是针对不同的用户或者组设置不同的权限:
首先进入项目管理,然后点击Administration下的Permissions:
进入权限管理后,我们可以看到,qa-training项目的权限是public,并在下方列出了不同的group和用户对应的权限:
在这里,我们先点击上方的Private,界面变化如下,
可以看到增加了Browse,See Source Code等权限控制,我们根据需要给不同的人和组相应的权限即可。
如果我们的项目权限针对的是同一个权限管理,那么可以通过修改permission template来进行统一管理:管理员账号登录后,点击Administration - Security - Permission Templates:
然后先建一个permission template,这里我们还可以选择特定的项目,我这里就是新建了一个Demo security template,然后只针对符合qa*这个正则表达式的项目起作用:
进去后针对不同的用户和组设置权限,保存即可。比如,我这里只有Administrator这个账号有权限,其他都无:
同时我们也可以选择该security template是否为默认的template。
在实际落地过程中,因为我司所有项目都放在Gitlab中,所以针对需要做代码扫描的项目,我这边做了定时任务,把有访问该gitlab项目的用户和组定时同步到sonarqube中,并将这些用户和组加入到sonar项目的权限中,这样,便实现了拥有gitlab项目访问权限的用户可以在sonarqube访问,而其他用户不能访问的安全管控。另外,我们使用管理员账号登录后,在Projects - Management下,需要把项目的默认查看权限改为Private:
分支支持
在实际的项目开发中,我们往往会有很多的分支,既有类似feature分支的短分支,也有类似release或者master的长分支。sonar对于分支的支持,默认只有在develop版本以上才有,如果想在开源版本下使用,我们可以使用sonarqube-community-branch-plugin这个插件https://github.com/mc1arke/sonarqube-community-branch-plugin,安装比较简单,直接从github的release下下载插件,并安装在/sonar/extensions/plugins/目录下即可。然后呢,在源码分析的时候增加sonar.branch.name即可。多说几句:
- 短分支会定期清理(30天),在Administration - Configuration - Database Cleaner下:
- 短分支主要关注的是新代码,也就是新代码引入的新问题
- 长短分支的识别配置,在Administration - Configuration - General下:
其他详情可以参考sonarqube官网:https://docs.sonarqube.org/latest/branches/overview/
开启分支管理后的sonarqube界面改变如下:
总结
文章主要介绍了sonarqube在实际使用过程中,针对规则处理、权限和分支的支持,具有很好的实践价值,建议大家掌握使用。
猜你喜欢
- 2024-09-28 sonar安装(sonar安装部署 windows)
- 2024-09-28 从零开始:Jenkins中代码审计SonarQube生产实践全攻略!
- 2024-09-28 代码质量管理平台SonarQube系列二:与maven集成检测
- 2024-09-28 SonarQube源码静态安全扫描工具使用入门
- 2024-09-28 手把手教你使用项目质量管理工具SonarQube
- 2024-09-28 代码质量管理平台实战|SonarQube 安装配置及 JaCoCo、Maven 集成
- 2024-09-28 四种人际互动动物模型,让你说的话有分量
- 2024-09-28 Sonar 在 Google Cloud Marketplace 提供干净的代码解决方案 SonarQube
- 2024-09-28 案例 | 如何以Sonar为例创建一个适用与所有企业的测试步骤
- 2024-09-28 Jenkins 进阶篇 - SonarQube 集成
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)