Java 6公開發行的最后一個版本將于2013年2月19日發布。之后Java SE 6運行時和SDK的所有新的安全更新、補丁和修復將只能通過My Oracle Support獲取,因而只有使用Oracle商業許可的用戶才能獲取。
考慮到這一點,Oracle在去年年底就開始通過自動更新用Java SE 7來自動替換Java SE 6了。Oracle在公告中宣稱,他們
……將于2012年12月開始把Windows 32位Java運行時環境(JRE)的用戶從JRE 6升級到JRE 7。
Java自動更新機制是為讓Java用戶保持更新到最新的安全修復而設計的。為實現該目標,依賴Java自動更新機制的Windows用戶的JRE 6將被替換為JRE 7。 Oracle將于2012年12月開始挑選部分用戶進行從JRE 6到JRE 7的自動更新,以評估自動更新機制、用戶體驗和無縫遷移。之后,隨著Java的更新版本Java SE 7 Update 11(Java SE 7u11)在2013年2月發布,Oracle會開始將所有Windows 32位用戶的JRE 6升級到JRE 7。
這種遷移是存在爭議的。JNBridge(主要業務是Java/NET的互操作)的CTO Wayne Citrin在一篇博客文章中寫道:
這太讓人吃驚了。Oracle已經做出決定,為修復廣泛報道的安全問題,他們不只會更新Java 7(他們最新的Java版本),還將徹底刪除一個完全獨立的產品。沒錯,Java 6就是獨立于Java 7的產品。它們可以同時安裝,而且很多用戶的機器上就是同時安裝了Java 6和Java 7。有些應用依賴Java 6,而其他應用可能依賴Java 7,這些依賴通常是硬編碼的,或者通過配置指向了正確卻又不同的文件位置。你能想象微軟在發布.NET 4.0的更新的同時把.NET 2.0移除掉嗎?問題就是這么嚴重。
更糟糕的是,看來他們是要站在自己的立場上將安裝的Java 6替換為Java 7,哪怕用戶的機器上只安裝了Java 6。
因此他這樣說,“你應該堅定地考慮關閉Java的自動更新”。
InfoQ請Citrin談了一下他的態度。“實際上我認為用戶最好的選擇是把瀏覽器插件升級到最新的Java 7,”他對我們說,“或者簡單地在瀏覽器中禁止Java。”關于Oracle應該如何處理目前這種狀況,他也提了很多建議:
a. 從支持同時安裝轉變為替換式安裝,也就是用Java 7替換Java 6,這需要嚴格向后兼容較老的版本,如此用戶才不會注意到。此時這或許并非很好的選擇,但從長期來看可能是最好的解決方案。
b. Java 6的更新至少再繼續提供一段時間。當然這只是拖延時間,無法最終解決問題。
c. 作為Java 7更新的一部分,檢查用戶的Java瀏覽器插件是不是Java 7。如果不是的話,就切換到Java 7。這可能是全面解決問題的最好方案。大多數攻擊都是通過瀏覽器進來的,不過大部分人并沒有注意到這一點。這種方式有可能什么都不破壞。
事實上Oracle已經對更新進程采取了一些防范措施。對企業級用戶而言,Java自動更新進程只更新用戶Windows機器上最新安裝的Java版本,這是最重要的。也就是說,如果安裝了多個Java版本,只有最近安裝的那個會被替換掉。此外,在由企業代表用戶對Java的版本進行管理的地方,通常關閉自動更新,因此他們不會受到影響。即便如此,盡管企業客戶應該不會受自動更新的影響,Citrin也提到,“我們與客戶交流時得知,作為獨立軟件開發商,他們也有些客戶報告問題”。
前幾天的安全電話會議也討論了Java默默進行自動更新的問題。當然,并非真是默默更新,但正如Ask工具欄(譯者注:這是Java安裝程序中提供的默認搜索功能工具欄)的安裝一樣,用戶往往沒有仔細閱讀就在安裝程序中點擊通過了,Citrin在與我們交流時也表達了這種觀點。考慮到這一點,回顧一下Donald Smith關于自動更新的評論是很有意思的事情:
當然,你會遇到挑戰:如果新出現的特性與歷史悠久的生態系統中的這一特性工作方式不同,突然就會有很多人問這個問題,“我應該如何避免這種情況發生呢?”
隨著Java日益成為惡意軟件和病毒作者的目標,對Oracle來說,鼓勵用戶更新到最新狀態一定是個挑戰。
InfoQ聯系了Oracle希望得到解答,但他們拒絕發表評論。
查看英文原文:Oracle Will Stop Providing Security Updates for Java 6 Next Month
來源: http://www.infoq.com/cn/news/2013/02/jdk6-retirement |