Java核心技术卷I基础知识(原书第9版)
上QQ阅读APP看书,第一时间看更新

1.2.5 安全性

Java适用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大精力。使用Java可以构建防病毒、防篡改的系统。

本书的第1版曾经说过:“永远不要把话说绝!”事实证明这是正确的。在Java开发工具箱第1版启用后不久,普林斯顿大学的一些安全专家就发现了在JDK1.0中的某些安全特性方面存在着一些非常隐蔽的bug。Sun Microsystems大力支持对Java的安全性的研究,制定了供人们使用的规范,实现了虚拟机和安全库,并迅速地处理了所有已知的安全bug。在任何情况下,蒙骗Java的安全机制都是十分困难的。现在,发现bug的技术越来越强,数目越来越少。

从一开始,Java就设计成能够防范各种攻击,其中包括:

●运行时堆栈溢出。如,蠕虫等病毒常用的攻击手段。

●在自己的处理空间之外破坏内存。

●未经授权读写文件。

许多安全特性相继不断地加入到Java中。自从Java 1.1问世以来,Java就有了数字签名类(digitally signed class)的概念(请参看卷II)。通过数字签名类,可以确定类的作者。如果信任这个类的作者,这个类就可以在你的机器上拥有更多的权限。

注释:来自微软的基于ActiveX技术的竞争代码传输机制,其安全性完全依赖于数字签名。这显然是不够的,因为微软自身产品的任何用户都可以证实,来自知名提供商的程序会崩溃并对系统产生危害。Java的安全机制比ActiveX要强得多,因为它是在应用程序运行时加以控制并制止恶意性破坏的。