SV.PASSWD.PLAIN
如果一个字符串可从文件存储器或网络追踪到将其用作密码的方法,便会出现此错误。
从 2023.2 版本开始,此检查器将支持 Jakarta EE。
漏洞与风险
如果存储器或网络未受外部加密保护,则能够访问它的任何人都将能看到密码的含义。
Klocwork 安全漏洞 (SV) 检查器可识别可能创建危险数据的调用;这些调用被视为不安全的来源。用户所提供的任何数据都可能是不安全的来源,因为用户可能是攻击者,或者可能引入人为错误。
缓解与预防
密码应动态输入。如果无法动态输入,则应将密码存储为不可逆的摘要,如 md5。如果方法需要纯文本的密码,将加密密码存储在配置文件中。
示例 1
复制
public static void main(String[] args) throws Exception {
Properties info = new Properties();
final FileInputStream st = new FileInputStream("config.ini");
info.load(st);
st.close();
DriverManager.getConnection("jdbc:mysql://localhost:3307", info);
}
针对第 18 行报告 SV.PASSWD.PLAIN:调用 getConnection 时使用的密码获取自 info。此密码以纯文本形式进行存储或传输,除非已应用外部加密(如 SSL)。
外部指导
扩展
此检查器可通过 Klocwork 知识库进行扩展。有关详情,请参阅调整 Java 分析。