【发布时间】:2016-03-22 09:08:22
【问题描述】:
我一直在尝试检测源代码文件中的硬编码密码。
目前我正在检查变量分配和比较标识符与密码匹配的子字符串,pswd。
但它会导致很多误报,例如在这种情况下(从配置文件中读取密码)
String PASSWORD_KEY = "server.password";
String password = prop.getProperty(PASSWORD_KEY);
我可以标记出一些子字符串,例如键、位置、路径,我可以跳过这些子字符串生成错误,但除此之外我想不出更好的方法。
感谢所有建议。
【问题讨论】:
-
可能太宽泛了,但是一个很好的问题....它想成为一个通用的或者你的密码有一些模式(我的意思是,
UPPERCASE、LOWERCASE、SYMBOLS是强制性的? ? -
@JordiCastilla 我想要一些可以跨不同代码库工作的东西。我实施的当前检查无论大小写都匹配。我一直在阅读并尝试使其更通用,以适应不同的编码风格。
-
因此,如果它决定所有硬编码密码都是 String 类型,我认为您可以使用正则表达式“*”在代码库中搜索所有硬编码字符串,然后您可以从中过滤密码。
-
@Sabir_Khan 目前不仅仅是字符串类型,即使主要挑战是从那些硬编码的字符串中过滤密码。对此有何见解?
-
但是,你怎么知道
String secret = "apple"或String myString = "k$%&crde46"是不是密码?变量名不是个好主意,你只能通过字符串模式搜索
标签: java security passwords sonarqube hardcoded