如果您想在 Linux(或其他 Unix)上使用實用程式伺服器盒子,而且它需要 Java,並且您的伺服器上沒有其他應用程式需要 Java,您會因為必須安裝它而感到厭煩嗎?
也就是說,您是否會看到這種依賴關係並認為“臃腫、安全隱患、我必須維護的另一個系統”,或者在這一點上 Java 如此安全且無處不在,根本沒有任何麻煩?
答案1
取決於很多事情。
- 有什麼用處?它有多重要?
- 為什麼猶豫是否安裝 Java?
- 機器的安全設定檔是什麼?
- Sun Java 還是您的 Linux 發行版中的 Java(自動更新)?
這基本上是成本和收益之間的權衡。與所有應用程式一樣,Java 也存在安全缺陷。 Sun 不時更新他們的 JVM,提供 Java 的 Linux 供應商也做同樣的事情。您打算如何向這台機器推送更新?它有多重要?如果機器有適當的防火牆並且運行有限的網路守護進程,Java 作為磁碟上的解釋器可能不會有太大的危險。 Java 通常不會以 root 身分運行。
幾乎所有關於 Java 的爭論都可以針對 Perl、Mono、GCC 或任何可以運行任意程式碼的軟體。此外,大多數 Linux 軟體通常由發行版提供,因此您通常可以依靠發行版的更新來確保安全。在這種情況下,Sun Java 將與任何第三方軟體相同。如果這個第三方實用程式需要一個剛好是 Java 的函式庫,這有什麼關係嗎?也許不會。
如果您談論的是 Java 運行服務應用程式(例如 Tomcat 或 JBoss),那麼情況會略有不同,然後 Java 會監聽網路。在這種情況下,安全風險會更高。但對於任何面向網路的應用程式(例如 apache 或 ssh),您都面臨著相同的安全風險。
答案2
我發現我的 Linux 伺服器上沒有應用程式需要 java 的情況非常罕見,而且我對需要 java 的東西沒有太大問題。它的使用如此廣泛,我希望在某個時候我會需要它。這可能是因為我擁有的大多數Linux伺服器都是用於ERP系統的。
不過,我確實遇到了不同應用程式需要不同版本的 JVM 或非常特定版本的 JVM 的問題。
答案3
這是一個最小的風險。任何軟體都包含一些風險,因此說完全不擔心是不正確的,但與其他任何軟體相比,我對 Java 不再有特別的擔憂。但在 Java 的早期,情況有所不同。
答案4
我將 Java 與 Python、Perl、Ruby、PHP、Mono 或任何需要運行時的東西歸為同一類別。只要它不需要我去找一些與打包版本衝突的自訂類別、插件或模組,我安裝它就沒有問題。
也就是說,身為Java 應用程式的系統管理員往往會有點耗時,因為系統管理員寧願直接看到錯誤,而不是閱讀3 頁的「堆疊中…」錯誤來尋找「空字串」之類別的錯誤。