【问题标题】:Dump memory show user and password info转储内存显示用户和密码信息
【发布时间】:2019-02-22 10:14:23
【问题描述】:

我一直在检查内存中转储数据的内存信息,并且我看到了用于登录服务器的请求的 JSON 结构。

出于安全原因,信息不应保存在内存中,因此我必须找出存储这些数据的内容。

我尝试检查 OKHttp3 以避免缓存任何信息,但似乎它可能是 GSON 转换器。

这条线 https://github.com/square/retrofit/issues/2305 来自一个抱怨 Strings hold in memory 的人。

我想知道将 GSON 视为问题是否正确,以及是否有机会让 GSON 知道我不想缓存具体类。

谢谢

【问题讨论】:

    标签: android memory-dump gson


    【解决方案1】:

    我认为问题出在这里:

    在字符串池中添加字符串有两种方法。 首先,如果您像下面这样声明您的字符串文字,该字符串将添加到池中。

    String test = "test"

    第二个如果你在字符串对象中调用实习生方法。像这样。

    String test = new String("test"); 
    test.intern();
    

    所以如果你这样声明你的用户名和密码:

    String username = new String("YOUR_PASSWORD");
    

    除非您调用实习生方法,否则它不会添加到池中。 所以尝试上述方式或使用 StringBuilder 类。垃圾收集发生在您的数据上。

    【讨论】:

    • 有什么方法可以在不使用垃圾收集器的情况下处理对象?
    • 您可以使用第二种方法,当您的工作完成敏感数据时,将它们的引用设置为 null。所以他们将有资格获得 GC,请注意,您不能强制 JVM 进行 GC,您可以建议这样做。
    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 2021-12-25
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多