Java
禁用 Java 代理
目前正在執行一個提供一些 Atlasian 工具(Crucible、fisheye、jira)的伺服器,出於安全原因,我希望禁用伺服器上的任何 Java 代理執行。
我的觀點不是禁用可以通過
-javaagent
CLI 參數與應用程序一起啟動的代理,而是禁用可以動態附加到正在執行的實例的代理(參見例如 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。