在JVM上禁用本地JMX连接

7 java memory heap dump jconsole

我们正在编写一个java程序,它将密码保存在内存中.不幸的是,用户可以轻松地使用jconsole或jmap创建堆转储文件并打开它以查找密码.我认为jconsole使用本地套接字连接jvm.我想知道,有没有办法甚至为本地用户禁用jmx?有没有办法完全禁用堆转储?由于用户可以访问内存段,因此无论如何都可以访问密码.但是,我想禁用标准方法,以使操作尽可能昂贵.

小智 5

最后,我找到了一个禁用jconsole连接的解决方案.它还可以防止jmap创建转储文件.我在这里找到了解决方案.我也在这里引用答案:

您可以通过运行-XX:+ DisableAttachMechanism选项来阻止jconsole等工具连接.请注意,此选项未记录/支持,但应该执行您想要的操作.也就是说,即使有这个,也没有什么可以阻止你连接gdb或其他基于调试/ proc的程序

但是,很明显可以在本地访问内存段.但是,有没有人知道一个工具来制作直接访问内存的标准内存转储?