我们正在编写一个在内存中保存密码的java程序。不幸的是,用户可以轻松地使用 jconsole 或 jmap 创建堆转储文件并打开它来查找密码。我认为 jconsole 使用本地套接字连接 jvm。我想知道,有什么方法可以禁用本地用户的 jmx 吗?有没有办法完全禁用堆转储?由于用户可以访问内存段,因此无论如何都可以访问密码。但是,我想禁用执行此操作的标准方法,以使操作尽可能昂贵。
最后,我找到了禁用 jconsole 连接的解决方案。它还阻止 jmap 创建转储文件。我找到了解决方案here。我这里也引用一下这个答案:
您可以阻止诸如
jconsole 和其他人通过连接
与运行
-XX:+禁用AttachMechanism选项。注意这个选项不是
记录/支持但应该这样做
你想要什么。也就是说,即使
没有什么可以阻止你
连接gdb或其他调试/proc
基于程序
然而,很明显内存段可以在本地访问。但是,有谁知道有一种工具可以通过直接访问内存来进行标准内存转储吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)