我在解决HP Fortify SCA正在报告的问题时遇到麻烦。
它报告的问题是:

硬编码密码可能会以某种方式损害系统安全性
无法轻易补救。

代码类似于以下内容:

@Configuration
public class MySpringConfig {

    private final String userName;

    private final String password;

    @Autowired
    public MySpringConfig(
            @Value("${my.userName}") final String userName,
            @Value("${my.password}") final String password) {
        this.host = host;
        this.userName = userName;
        this.password = password;
    }
    ...
}

我不明白为什么Fortify会认为这是一个硬编码的密码。密码作为参数传递给构造函数,该密码来自Spring @Value

我已经考虑过使用@FortifyNotPassword来阻止这种误报,但这实际上是一个密码。我不想使用该注释,因为它可能会错过实际的问题,例如记录该字段的值。

最佳答案

Fortify认为这是一个硬编码的密码,因为该工具不如人类聪明!作为我的代码审阅者,这是最常见的误报之一。

没有人工审核员,不得以自动化方式使用Fortify。 Fortify可以帮助代码审查者查看有趣的内容,而不是代替代码审查者。代码审阅者需要手动抑制或滤除此问题。

如果您想要一个更自动化的解决方案,Fortify不是正确的工具,因为它带来了太多的误报。

10-08 07:03