我一直在尝试检测源代码文件中的硬编码密码。
目前我正在检查变量赋值和标识符与密码 pswd 匹配的子字符串的比较。
但它会导致很多误报,例如在这种情况下(从配置文件中读取密码)
String PASSWORD_KEY = "server.password";
String password = prop.getProperty(PASSWORD_KEY);
我可以标记出一些子字符串,例如键、位置、路径,我可以跳过这些子字符串的错误生成,但除此之外我想不出更好的方法。
感谢所有建议。
最佳答案
真实世界的隐藏后门案例表明,代码通常更加模糊,无法使用指示目的的变量名。
因此,为了做到万无一失,您需要进行完整的静态分析,并在代码检查器中拥有“智能”以理解代码并找到身份验证发生的位置,然后向后工作以验证没有隐藏的方法实现这一目标。
恕我直言,雇人做(安全)代码审查比尝试自动化要便宜。
关于java - 检测硬编码密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34308489/