写点什么

本月起 Oracle 将不再提供 Java 6 的安全更新

  • 2013-02-05
  • 本文字数:1663 字

    阅读完需:约 5 分钟

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

2013-02-05 02:331669
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 136.1 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

这份Java面试八股文让329人成功进入大厂,堪称2021最强

北游学Java

Java 面试

挑选TOP10关键时刻的九大原则

石云升

读书笔记 用户体验 商业洞察 7月日更 体验设计

赶紧收藏!花了1万多买的软件测试教程全套,包含所有软件测试工程师全栈知识点(功能测试理论基础+接口测试+Python自动化+持续集成+性能测试+测试开发+面试简历)软件测试项目实战+训练营学习教程持

程序员阿沐

Python 软件测试 自动化测试 接口测试 测试用例

MySQL事务初始

卢卡多多

MySQL 事务 7月日更

Vue进阶(六):组件之间的数据传递

No Silver Bullet

Vue 组件 7月日更 数据传递

Scrum Master的职责——《Scrum指南》重读有感(5)

Bruce Talk

Scrum 敏捷 随笔 Agile

[翻译] InnoDB 空间文件中的页面管理

keaper

MySQL 数据库 后端 服务端 innodb

web自动化测试(1):再谈UI发展史与UI、功能自动化测试

zhoulujun

大前端 自动化测试 UI自动化测试 web测试

OpenCV 形态学操作之腐蚀与膨胀,开运算与闭运算,顶帽与黑帽,图像梯度运算相关知识点回顾

梦想橡皮擦

python从入门到精通 7月日更

golang学习之路--内存分配器

en

内存 Go 语言

实战架构营模块三作业-外包学生管理系统架构设计

王晓宇

架构实战营 - 模块 9- 作业

请弄脏我的身体

架构实战营

4种Spring Boot中集成Elasticsearch的方法实战

北游学Java

Java Spring Boot ES

在线诉讼区块链证据规则的理论逻辑与制度体系

CECBC

架构实战营 - 模块三作业

思梦乐

Flutter 命令本质之 Flutter tools 机制源码深入分析

工匠若水

flutter android dart Gradle

究竟有没有世界上最好的编程语言?

escray

学习 极客时间 朱赟的技术管理课 7月日更

Go语言:指针和unsafe.Pointer有什么区别?

微客鸟窝

Go 语言

[翻译] 使用 innodb_ruby 探索 InnoDB 的页面管理

keaper

MySQL 数据库 后端 服务端 innodb

Vue进阶(十八):router.beforeEach 与 router.afterEach 钩子函数

No Silver Bullet

Vue 钩子函数 路由 7月日更

企业架构师的职业发展

在天涯的海角

架构师 职业发展 企业架构师

架构实战营 模块三 作业

一雄

作业 架构实战营 模块三

[翻译] InnoDB 空间文件布局基础

keaper

MySQL 数据库 后端 服务端 innodb

JVM知识整理

十二万伏特皮卡丘

JVM

第九课作业

杰语

详解轻量日志聚合系统Loki架构

运维研习社

Grafana 日志系统 Loki

C# BS方向 该如何规划学习?【学习路线指南】

Andy阿辉

C# 学习 编程 程序猿

没有隐私计算,区块链这个美丽的梦想就不能落地

CECBC

架构实战营模块三作业

老猎人

架构实战营

使用MLlib进行机器学习(十-上)

Databri_AI

机器学习 spark 线性回归

构建高效Presubmit卡点,落地测试左移最佳实践

大卡尔

ci 测试左移 Presubmit

本月起Oracle将不再提供Java 6的安全更新_安全_Charles Humble_InfoQ精选文章