Sonar Java 5.9 发布了,Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、php、C#、C、Cobol、PL/SQL、Flex 等。SonarQube Java 是 Sonar 的一个插件,用来分析 Java 代码。
此版本新增了 29 条无则,包括 12 条安全热点规则(SECURITY HOTSPOTS RULES)、7 个 Bug 检测和 10 个 Code Smell 规则。
值得介绍的是安全热点,它是一种特殊类型的问题,它可以识别安全敏感的代码区域,帮助安全分析师确定代码是否存在漏洞。此次新增的安全热点规则包含一些最常见的安全敏感代码模式,例如执行正则表达式、加密数据或控制访问控制。此外还有涵盖了多个框架和库的规则,如 Guava、Apache Commons、Spring 等,每条规则都解释了可能潜伏的危险,以确定代码是否易受攻击,并提供建议。
S4817 - Executing XPath expressions is security-sensitive ( Security Hotspot )
S4784 - Using regular expressions is security-sensitive ( Security Hotspot )
S4790 - Hashing data is security-sensitive ( Security Hotspot )
S4787 - Encrypting data is security-sensitive ( Security Hotspot )
S1523 - Dynamically executing code is security-sensitive ( Security Hotspot )
S4825 - Sending HTTP requests is security-sensitive ( Security Hotspot )
S4792 - Configuring loggers is security-sensitive ( Security Hotspot )
S4834 - Controlling permissions is security-sensitive ( Security Hotspot )
S4797 - Handling files is security-sensitive ( Security Hotspot )
S4829 - Reading the Standard Input is security-sensitiv ( Security Hotspot )
S4823 - Using command line arguments is security-sensitive ( Security Hotspot )
S4818 - Using Sockets is security-sensitive ( Security Hotspot )
S3065 - Min and max used in combination should not always return the same value ( Bug )
S3078 - "volatile" variables should not be used with compound operators ( Bug )
S2689 - Files opened in append mode should not be used with ObjectOutputStream ( Bug )
S3822 - Hibernate should not update database schemas ( Bug )
S4517 - InputSteam.read() implementation should not return a signed byte ( Bug )
S3032 - JEE applications should not "getClassLoader" ( Bug )
S3077 - Non-primitive fields should not be "volatile" ( Bug )
S2139 - Exceptions should be either logged or rethrown but not both ( Code Smell )
S4738 - Java 8 features should be preferred to Guava ( Code Smell )
S4838 - An iteration on a Collection should be performed on the type handled by the Collection ( Code Smell )
S4682 - "@CheckForNull" or "@Nullable" should not be used on primitive types ( Code Smell )
S4925 - "Class.forName()" should not load JDBC 4.0+ drivers ( Code Smell )
S4929 - "read(byte[],int,int)" should be overridden ( Code Smell )S4926 - "serialVersionUID" should not be declared blindly ( Code Smell )
S4719 - "StandardCharsets" constants should be preferred ( Code Smell )
S3864 - "Stream.peek" should not be used ( Code Smell )
S3014 - "ThreadGroup" should not be used ( Code Smell )
详情查看 发布公告 。