检测硬编码密码

Mri*_*wat 6 java security passwords hardcoded sonarqube

我一直在尝试检测源代码文件中的硬编码密码.

目前,我正在检查变量赋值和比较标识符,其子字符串与password,pswd匹配.

但它导致了许多误报,例如在这种情况下(从配置文件中读取密码)

String PASSWORD_KEY = "server.password";
String password = prop.getProperty(PASSWORD_KEY);
Run Code Online (Sandbox Code Playgroud)

我可以标出一些子字符串,如Key,location,path,我可以跳过错误生成但除此之外,我想不出更好的方法.

所有建议表示赞赏.

小智 1

隐藏后门的真实案例表明,使用指示目的的变量名称通常会更加模糊代码。

因此,为了做到万无一失,您需要进行完整的静态分析,并在代码检查器中拥有“智能”来理解代码并找到身份验证发生的位置,然后向后工作以验证没有隐藏的方法来实现此目的。

恕我直言,雇用某人进行(安全)代码审查比尝试实现自动化更便宜。