前端之家收集整理的这篇文章主要介绍了
Java堆转储中的敏感数据,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我编写的软件处理各种敏感信息,如电子邮件地址,密码和信用卡号.
当我们遇到内存问题时,让应用程序编写堆转储会很好.问题是如果一个线程恰好在该区域中工作,那么堆转储可能包含纯文本的敏感信息…当我们在其他地方加密它时,我们真的不希望写入磁盘.
是否有处理此问题的方法,例如导致JVM写入加密转储?
最佳答案
我一直在考虑在VM外面处理这个问题.一种天真的
方法可能是让jvm将转储写入加密的环回设备.当然,这并不是完全安全的,因为任何具有root访问权限的人都可以访问挂载点,但这是我期望的那种
解决方案.我可能会看到我是否可以设置jvm最终写入的FIFO.我知道vm将使用的
文件名,所以这可能会起作用,这取决于vm如何应对(稍后:这不起作用.JVM抱怨“
文件存在”)
使用char数组只能缓解问题,但仍有可能数组在转储时会包含一些纯文本.