我们都知道Java中的密码/凭据应存储为char数组。它是缓解措施,而不是保护措施。
我始终保持凭据不使用不可变的对象,但我迟早需要将其传递给某个期望使用String的类(来自我们使用的所有第3个库)。难道不是所有的努力都消失了吗? 例如:如果我要设置授权标头,则标头值由org.apache.http.message.BasicHeader类存储为String。 另一个例子(可能不是很好):我使用一种处理密码的服务(存储密码或其他东西)。它要求它们作为POST请求中的主体。我创建HttpPost并将StringEntity添加为主体。它已经存储为String,可以再次转储。
您是否设法使凭据相对安全地防止内存转储?
谢谢
答案 0 :(得分:0)
与该领域的一些安全专家联系后,我得到了以下答案: