我针对安全漏洞的 checkmarx 工具运行了我的 java 应用程序,它不断地给出一个问题 - 堆检查,用于我使用字符数组的密码字段。除了指出密码字段的声明外,它没有给出任何解释。
private char[] passwordLength;
谁能帮我解决这个问题,我还能寻找什么来解决这个问题?
最佳答案
堆检查是关于存储在未加密的机器内存中的敏感信息,因此如果攻击者执行内存转储(例如,Heartbleed 错误),该信息就会受到损害。因此,仅仅持有这些信息就会使其变得脆弱。
可以通过以安全方式存储此类敏感信息来缓解这种情况,例如使用 GuardedString 对象而不是 String 或 char 数组,或者对其进行加密并在短时间内删除原始信息。
有关详细信息,请参阅 this CWE (描述 C/C++ 但与 Java 具有相同的相关性)。
关于java - 堆检查安全漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30341327/