代码质量与安全 | 你绝不想错过这9大特性,升级到SonarQube 9.9 LTS一网打尽!
SonarQube 9.9 LTS已于今年2月份发布,希望您已经看到了这个公告并且正在进行升级。
4月,我们发布了文章《代码质量与安全 | 升级SonarQube 9.9 LTS,轻松拥有这9大新特性!》,介绍了没有在大型发布公告中出现的一些特性,然而,还远远不止这些!这是Sonar有史以来最好的LTS,这个版本还有更多关于细微功能和改进的内容等待您来探索。
事不宜迟,以下是您应该优先考虑升级到SonarQube 9.9 LTS的另外9大理由。
理由1:导入其他工具生成的SARIF报告
2019年,静态分析结果交换格式(SARIF)被定义为静态分析工具输出的标准格式。从那时起,这个格式就在安全工具中被广泛采用。
根据社区的反馈意见,Sonar在SonarQube 9.9 LTS中添加了这一功能,可以导入SARIF报告中的问题,并与SonarQube分析一起使用!现在,开发人员无需离开SonarQube就可以了解这些报告的发现了。
理由2:检测Git子模块中的新代码
Git允许您在引用另一个Git存储库时使用子模块。
无论您喜欢还是讨厌这个功能,它都存在——直到最近,它们破坏了SonarQube对新代码的检测。这导致了开发人员在分析拉取请求时出现不必要的噪音。虽然SonarQube可以检测到某些文件已更改,但SonarQube无法确定是哪个具体的行。
在SonarQube 9.9 LTS中,这个问题被解决了。欢迎你来到Sonar大家庭,Git子模块。
理由3:已删除的插件不会再 留下“僵尸”质量配置文件
在安装第三方插件时,有些插件会提供内置的质量配置文件(例如Sonar的分析器提供了内置的“Sonar Way”质量配置文件)。
在过去,如果您删除了这样的第三方插件,你将困扰于无法删除的质量配置文件,除非进行危险的数据库更改。这对于不希望在查看质量分析配置时出现混乱和干扰的用户来说,这确实令人感到困扰。
自从SonarQube v6.7 LTS引入了内置的质量配置文件依赖,这些“僵尸”配置文件一直都存在。但在SonarQube 9.9 LTS中,您终于可以删除它们了。
理由4:“收到”安全热点
安全热点是指需要开发人员审查的安全敏感代码段。
在SonarQube 8.9 LTS中,只能将热点标记为“安全”或“已修复”,而我们得到用户的反馈是,在开发人员审查到安全热点但还没有解决方案时,这段时间存在标记空白。
SonarQube 9.9 LTS中添加了“已收到”状态,能告知团队和审核员您已经看到了问题,并在等待修复程序。
理由5:在扫描时选择参考分支
SonarQube8.9 LTS引入了新代码周期参考分支,用户可以将其新代码周期配置为基于与现有分支的比较。
一些用户希望在扫描仪上设置这一选项,而不是使用UI/API。SonarQube 9.9 LTS通过分析参数(sonar.newCode.referenceBranch)实现了这一功能。
如果您针对特定的发布分支构建了特别的分支,或者您的流水线中有一些逻辑来确定代码将合并到哪个分支中(例如基于分支名称),那么这将非常有用。
理由6:支持C/C++分析的编译数据库
进行C/C++分析需要大量精确的配置信息才能生成准确的分析结果。这就是为什么以前要使用Sonar的“构建包装器”包装构建,因为这样才能收集到有关环境和发送到编译器的命令的所有信息。
虽然可靠,但也有一些弊端,比如需要使用类似于ccache的工具来执行增量构建。在某些时候,这并不是个好选项。
在SonarQube 9.9 LTS中,可以将编译数据库传递给扫描程序,而不是包装完整的构建,从而提高了灵活性。
理由7:新的(和改进了的)分析教程
SonarQube 提供应用内教程,帮助您将分析集成到新的和现有的构建流水线中。在SonarQube 9.9 LTS中提供了新的教程,涵盖更多的DevOps平台和CI工具组合,并对现有教程进行了许多更新。
新的/改进的教程包括:
Bitbucket流水线
GitHub+Azure DevOps
Jenkins+Bitbucket
贯穿所有支持的DevOps平台的C/C++分析
未绑定到特定DevOps平台的项目
这使配置分析变得相当容易,您再也不需要阅读大量文档或者成为SonarQube专家。
理由8:加强SonarQube的安全性
SonarQube 9.9 LTS在加强安全方面做了很大的努力,主要针对一些基于Sonar自己的渗透测试发现的安全问题,并添加了用户一直期望的“好用功能”, 使得内部审计合规更加容易。
这些改进包括:
添加HTTP标头Content-Security-Policy
使用HTTPS时添加(HSTS)标头Strict-Transport-Security
添加标志到Cookies SameSiteHttpOnly
与DevOps平台集成时不遵循重定向
防止插件修改SonarQube的主目录
支持SAML请求签名和断言加密
毫无疑问,SonarQube 9.9 LTS是Sonar发布过最安全的SonarQube LTS。
理由9:将项目迁移至社区版
SonarQube的企业版和数据中心版允许用户导出和导入项目,以便将其从一个实例移动到另一个实例——称之为Project Move。当企业需要整合许多SonarQube实例时,这个功能特别有用。
在此之前,这需要源和目标的SonarQube实例运行相同的版本和许可证类型。其中,要求许可证类型相同,会导致社区/开发者许可合并为企业版(或更高版本)变得复杂,因为社区/开发者许可中的实例需要试用临时许可证,才能升级到企业版。
在SonarQube 9.9 LTS中,通过允许从任何许可证类型导出项目(版本的要求仍然存在),让在SonarQube实例之间移动项目变得更加容易!
项目导入仍然只能在企业版和数据中心版中使用。
只需一步:升级即可获得所有好处
如果您还没有尝试过SonarQube 9.9 LTS,希望现在您有了更多的理由与团队一起准备升级。这是一个免费的版本升级,你只需在SonarQube Downloads点击几下即可获得LTS。