我无法找出 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;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 Fortify 会认为这是一个硬编码密码。密码作为参数传递给构造函数,它来自 Spring @Value。
我曾考虑使用@FortifyNotPassword来阻止这种误报,但这实际上是一个密码。我宁愿不使用该注释,因为它可能会错过真正的问题,例如记录此字段的值。
Fortify 认为这是一个硬编码的密码,因为该工具不如人类聪明!这是我作为代码审查员遇到的最常见的误报之一。
Fortify 不应在没有人工代码审核员的情况下以自动化方式使用。Fortify 是为了帮助代码审查者查看有趣的东西,而不是取代代码审查者。代码审查者需要手动抑制或过滤掉这个问题。
如果您想要一个更自动化的解决方案,Fortify 不是正确的工具,因为它会带来太多误报。
| 归档时间: |
|
| 查看次数: |
6207 次 |
| 最近记录: |