禁用 Java 代理

禁用 Java 代理

当前正在运行一个提供一些 Atlasian 工具(Crucible、fisheye、jira)的服务器,出于安全原因,我想禁用服务器上任何 Java 代理的执行。

我的观点不是禁用可以通过-javaagentCLI 参数随应用程序启动的代理,而是禁用可以动态附加到正在运行的实例的代理(例如,参见 byteman)。即,使 Java 应用程序不可“附加”。

另一个限制是,由于配置复杂,修改这些工具命令行有些困难。因此,更改必须是全局的,针对整个服务器,针对所有 Java 应用程序。

有没有办法全局禁用此“功能”?通过 Java 配置,还是其他方式?

答案1

引用此论坛帖子,这取决于所讨论的 JVM:

IBM JVM:

java -Dcom.ibm.tools.attach.enable=false [...]

SUN/Oracle JVM/OpenJDK:

java -XX:+DisableAttachMechanism [...]

有关 Java VM 参数的更多信息,请参见这里

建议使用环境变量JAVA_TOOL_OPTIONS来强制在系统范围内使用这些选项。不过这可能不适用于所有 JVM。

相关内容