Java

禁用 Java 代理

  • February 10, 2013

目前正在執行一個提供一些 Atlasian 工具(Crucible、fisheye、jira)的伺服器,出於安全原因,我希望禁用伺服器上的任何 Java 代理執行。

我的觀點不是禁用可以通過-javaagentCLI 參數與應用程序一起啟動的代理,而是禁用可以動態附加到正在執行的實例的代理(參見例如 byteman)。即,使 Java 應用程序不可“附加”。

另一個限制是,由於配置複雜,修改這些工具命令行有些困難。因此,對於整個伺服器,對於所有 Java 應用程序,更改必須是全域的。

有沒有辦法全域禁用這個“功能”?通過 Java 配置,還是什麼?

引用這個論壇文章,這取決於有問題的 JVM:

IBM JVM:

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

SUN/Oracle JVM/OpenJDK:

java -XX:+DisableAttachMechanism [...]

有關 Java VM 參數的更多資訊,請參見此處

表明JAVA_TOOL_OPTIONS可以使用環境變數在系統範圍內強制使用這些選項。不過,這可能不適用於所有 JVM。

引用自:https://serverfault.com/questions/476794