`

安全专家说:现在到了该彻底重写Java的时候了

阅读更多

英文原文:It's time to rewrite Java from scratch, security expert says 

如果说最近的 Java 暴露出来的安全缺陷能给我带来什么警示,那就是现在是到了 Oracle 公司重写这种语言的时候了。

这是杀毒软件 Bitdefender 的缔造者、资深软件威胁分析师、罗马尼亚人 Bogdan Botezatu 做出的结论,由于本周发现的最新的 java 缺陷,他估计会导致多于 1 亿台计算机暴露在黑客攻击的危险之中。

按 Botezatu 的说法,Oracle 的 Java 代码已经处于失控之中,这就是为什么严重的安全问题不断的出现在这种语言软件中的原因。

“Oracle 需要整理出 Java 的一些核心组件,彻底重写它们,”在一次访谈中他这样说。

一些成熟的产品,比如 Java 或 Adobe 公司的几款软件,在过去的很长的时间里已经被无数人的手动过。“这些产品变得如此庞大,被如此多的程序员维护过,导致这些软件的出品人基本上对这些软件里应该有的东西失去了控制。”Botezatu 说。

与软件缺陷的战争

Oracle 最近在对 Java 漏洞进行修补的结果证实了这位罗马尼亚安全专家的分析。

例如,2012 年 8 月份在新版的 java7 修订版 7 中,Oracle 修补了 3 个安全漏洞。就在这些补丁包发布的几个小时后,波兰安全专家、Security Explorations 公司的创始人和 CEO——Adam Gowdiak 发现了一个由这些补丁程序造成的安全漏洞。一些安全专家认为,Java 现在是年老多病,很多功能器官都要依赖其它技术手段来维持工作。

根据 Gowdiak 所说,这种编程语言里最近发现的一个还没有相关补丁包的安全漏洞也同样被认为是 2012 年 10 月份的那次安全升级的补丁包引入的。这些安全补丁包本身就不安全,它们打开了大门让自己暴露在黑客攻击下。

“现在是一个很好的重写 Java 的时机,以此来消除 bug,而不是一层一层的打补丁。”Botezatu 说。

然而,Botezatu 知道这是不可能的。“Oracle 不可能去做一些大的动作,因为这样会影响现有市场上的众多程序,”他补充道。

目前 Oracle 所面对的 Java 开发上的问题是一个所有软件生产商都在面对的问题:如何在不破坏对以前版本兼容性的前提下改进软件。

“你可以看一下 Windows Vista,看看它是如何因为一些客户的在 Windows XP 上的应用不能在 Vista 里运行而不被用户接受的。”Botezatu 解释说。

不管怎样,一些迹象显示,Oracle 真正努力解决 Botezatu 所说的这些问题。在周五,Oracle 宣布,从 9 月份的 Java8 开始,新的版本将以两年一次的频度发布

鉴于目前安全形势,美国国土安全部建议禁掉浏览器里的 Java,可以通过 Oracle 公司提供的以下这些步骤实现。

 

分享到:
评论

相关推荐

    java中的url重写

    Java 中的 URL 重写 Java 中的 URL 重写是一种常用的技术,它可以将原始的 URL 转换为另一个 URL,以便达到特定的目的。例如,隐藏真实的 URL、实现 URL 的加密、实现 URL 的重定向等。在 Java 中,有多种方式可以...

    Java 继承和方法重写

    使用 `@Override` 注解可以帮助编译器检查是否真正重写了父类方法,提高代码的可读性和安全性。 4. **方法覆盖与方法隐藏**: - **方法覆盖**:子类中定义了与父类同名、同参数列表的方法,属于重写。 - **方法...

    Java重写equals同时需要重写hashCode的代码说明

    Java重写equals同时需要重写hashCode的代码说明,以及如何重写hashCode方法,此代码演示按照effective java书籍说明的重写思路。代码中演示了使用集合存储对象,并且对象作为key,需重写equals和hashCode.

    java中重写ZipCOM方法

    在Java编程语言中,"重写ZipCom方法"通常指的是我们对Java标准库中的`java.util.zip`包中的某些类或方法进行自定义扩展,以满足特定的压缩和解压缩需求。SOAP(Simple Object Access Protocol)是一种基于XML的协议...

    JAVA重写和重载.pdf

    JAVA重写和重载(Overriding和Overloading) JAVA中有两种不同的多态性表现形式:重写(Overriding)和重载(Overloading)。下面将对这两种形式进行详细的解释。 重载(Overloading) 重载是指在一个类中可以...

    Java重写.docx

    2. 被final关键字修饰的方法不能被重写:如果父类方法被final关键字修饰,那么子类不能重写该方法。 3. 被static修饰的方法不能被重写:如果父类方法被static修饰,那么子类不能重写该方法。 但是,如果子类中定义了...

    Java方法的艺术:重载与重写的深度解析

    #### 一、方法重载:Java 中的多态性 方法重载发生在同一个类中,当有两个或多个方法在类中具有相同的名称,但参数列表不同。具体来说,方法重载的关键点在于: - 参数列表不同:可以是参数的数量不同、参数的类型...

    10.java方法的重写.zip

    10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法的重写.zip10.java方法...

    Java重写和重载概念及区别梳理

    在编程语言中,Java的重写(Override)和重载(Overload)是两个非常重要的概念,它们在类与对象的多态性中起到关键作用。理解并掌握这两个概念是成为一名合格的Java开发者的基础。 首先,我们来谈谈重写(Override...

    使用JavaSwing重写的美化版窗口模板

    在这个“使用JavaSwing重写的美化版窗口模板”中,我们可以深入探讨Java Swing在构建美观、交互性强的窗口应用中的运用。 1. **Java Swing基础**: - Swing是Java的轻量级GUI框架,它使用Java2D进行渲染,可以创建...

    JAVA中的方法重写与方法重载区别

    JAVA中的方法重写与方法重载区别 JAVA 中的方法重写和方法重载是两个重要的概念,在面向对象程序设计语言中尤为重要。方法重写和方法重载都是多态性的体现,但它们之间有着本质的区别。 方法重写(Override)是指...

    java中的重载和重写的区别

    Java中的重载(Overloading)和重写(Overriding)是面向对象编程中两个重要的概念,它们体现了Java的多态性。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。 首先,让我们详细解释一下方法的重载。重载...

    Java重写重载线程

    ### Java中的方法重载与重写以及线程概念详解 #### 一、方法重载(Overloading) 在Java中,**方法重载**是指在同一个类中定义多个具有相同名称但参数列表不同的方法。这里提到的“参数列表不同”不仅包括参数的...

    java子类重写父类的方法.doc

    Java 子类重写父类的方法详细解析 Java 中子类重写父类的方法是面向对象编程的核心概念之一。子类可以重写父类的方法,以改变或扩展父类的行为。但是,子类重写父类的方法需要遵守一定的规则,以避免编译器错误和...

    Java_重写equals()和hashCode()

    例如,如果一个类有三个属性(a, b, c),则可以这样重写: ```java @Override public int hashCode() { int result = 17; result = 31 * result + a; result = 31 * result + b; result = 31 * result + c; ...

    Java的重载和重写

    Java编程语言中的重载(Overloading)和重写(Overriding)是两个关键的概念,它们都是多态性的重要体现,但各自有着不同的含义和规则。 首先,我们来详细了解一下方法的重载。重载,简单来说,就是在一个类中定义多个...

    Java中重载和重写总结

    Java 中的重写是指在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类可以继承父类中的方法,而不需要重新编写相同的方法,但有时子类并不想原封不动地继承父类的方法,而是想...

    neschgui-java:Java中neschgui的重写版本

    【neschgui-java:Java中的neschgui重写版本】 neschgui-java是一个基于Java的项目,它是neschgui的重写版本,旨在为用户提供一个跨平台的工具,用于编辑和管理经典的NES(Nintendo Entertainment System)游戏文件...

    java代码-使用java解决重写void paint( Graphics g )方法的源代码

    java代码-使用java解决重写void paint( Graphics g )方法的源代码 ——学习参考资料:仅用于个人学习使用!

    java中重载与重写

    在Java编程语言中,方法的重载(Overloading)与重写(Overriding)是两个非常重要的概念。它们虽然只有一字之差,但其实质却大相径庭。理解这两者的不同对于深入掌握Java语言至关重要。 ### 一、重载(Overloading...

Global site tag (gtag.js) - Google Analytics