1.4 Java的安全性
Java 的设计始终考虑安全性,因此和很多其他现有系统和平台相比有很大的优势。Java 的安全架构由安全专家设计,而且这个平台发布之后,很多其他安全专家仍在研究和探讨。专家们一致认为,Java 的安全架构坚固牢靠,在设计层面没有任何安全漏洞(至少还没有发现)。
Java 安全模型的基础是,严格限制字节码能表述的操作,例如,不能直接访问内存,因此避免了困扰 C 和 C++ 等语言的一整类安全问题。而且,只要 JVM 加载了不信任的类,就会执行字节码校验操作,从而避免了大量问题(字节码校验的更多信息,参见第 10 章)。
尽管如此,没有任何系统能保证 100% 的安全性,Java 也不例外。
虽然从理论上讲,设计是牢固的,但安全架构的实现是另外一回事,在某些 Java 实现中,一直都在发现和修补安全缺陷。
不得不说,Java 8 的延期发布,至少部分原因是发现了一些安全问题,必须要投入时间进行修复。
我相信,在实现 Java 虚拟机的过程中始终都会发现(并修正)安全缺陷。
不过,值得注意的是,最近发现的 Java 安全问题大都与桌面技术有密切联系。在日常的服务器端编程方面,Java 仍是当前最安全的通用平台。
