zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Java核心技术卷I基础知识1.2.5 安全性

2023-03-09 22:24:52 时间

1.2.5 安全性


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


毒、防篡改的系统。


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


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


破坏自己的进程空间之外的内存。


未经授权读写文件。


原先,Java对下载代码的态度是“尽管来吧!”。不可信代码在一个沙箱环境中执行,在这里它不会影响主


系统。用户可以确信不会发生不好的事情,因为Java代码不论来自哪里,都不能脱离沙箱。


不过,Java的安全模型很复杂。Java开发包(Java Development Kit,JDK)的第一版发布之后不久,普林


斯顿大学的一些安全专家就发现一些小bug会允许不可信的代码攻击主系统。


最初,安全bug可以快速修复。遗憾的是,经过一段时间之后,黑客已经很擅长找出安全体系结构实现中的


小漏洞。Sun以及之后的Oracle为修复bug度过了一段很是艰难的日子。


遭遇多次高调攻击之后,浏览器开发商和Oracle都越来越谨慎。Java浏览器插件不再信任远程代码,除非


代码有数字签名而且用户同意执行这个代码。


      注释:现在看来,尽管Java安全模型没有原先预想的那么成功,但Java在那个时代确实相当超前。


微软提供了一种与之竞争的代码传输机制,其安全性完全依赖于数字签名。显然这是不够的,因为微软自


身产品的任何用户都可以证实,知名开发商的程序确实会崩溃并对系统产生危害。