使能堆转储增强特性
介绍
- JVM提供支持转储进程堆内容的能力,若Java进程内存中保留了大量的敏感信息,dump转储堆文件的操作将存在信息泄漏的安全风险。
- 堆转储增强特性在保障Heap-dump故障定位能力前提下,屏蔽了转储堆文件中的敏感信息,该特性尤其在重大涉密项目中,对数据安全与隐私保护有重大意义。
场景建议
需要通过Heapdump文件进行问题定位或性能分析,但不希望发生敏感信息泄漏。
使用约束
- 服务部署的Java版本要升级到和支持该功能的JDK工具包对应的版本。
- 请参见安装毕昇JDK加速库完成毕昇JDK加速软件包的下载和安装,下载毕昇JDK加速库后将软件包移动到“/usr/lib64”目录下,并修改权限确保Java进程所有者可读可执行。
使用方法
堆转储增强特性支持以下两种方式使能。
- 进程VM参数使能方式举例:
java -Xmx10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpRedact=full -XX:RedactMapFile=/home/heapmap.txt -XX:RedactMap="password:abc,encrypt:cde" MyClass
- jmap命令参数使能方式举例:
jmap -dump:HeapDumpRedact=<names/basic/full/annotation/diyrules/off>,RedactMap="<key1:value1;key2:value2;...>",RedactMapFile=<file path> <pid>
命令参数说明如表1所示。
参数 |
说明 |
---|---|
-XX:HeapDumpRedact |
指定匿名化模式。
|
-XX:RedactMap |
|
-XX:RedactMapFile |
通过文件获取要屏蔽敏感名字的映射关系。 |
-XX:RedactClassPath |
指定敏感值替换的注解类。 |