SonarLint针对“硬编码密码”误报的最佳做法

Tim*_*Tim 5 java sonarlint

SonarLint在我的代码库中将某些变量标记为阻止程序。像public static final String INVALID_PASSWORD = "Your password is invalid.";

SonarLint认为该变量可能包含硬编码的密码,这存在安全风险。但是在这种情况下,变量不包含密码,而是包含有关密码的消息。

我也有一些like public static final String INVALID_PASSWORD = "INVALID_PASSWORD";,它们是代码而不是字符串,SonarLint也会对其进行标记。

“解决”此类问题的最佳实践是什么?想到的两个解决方案是重命名变量并使用@SupressWarnings("code here")注释。

SonarLint本身是否对此问题有建议?有行业最佳实践吗?

Rom*_*ano 8

您应该能够通过以下方式使声纳问题静音:

@SuppressWarnings("squid:S2068") // This is not an hard coded password.
Run Code Online (Sandbox Code Playgroud)

注释过罪魁祸首。


Sto*_*ica 4

如果您在连接模式下将 SonarLint 与 SonarQube 一起使用,那么您可以安全地将此问题标记为False Positive。这将是管理软件质量的推荐方法,但它需要 SonarQube。

如果您不使用 SonarQube,那么目前没有(好的)方法来抑制 SonarLint 中的问题。这样的功能很有可能在不久的将来(今年)在 SonarLint 中实现。