描述
- Java安全模型的核心就是Havana沙箱(sandbox)。
- 沙箱是一个限制程序运行的环境。沙箱机制就是将Java代码限定在虚拟机特定的运行范围中,并且严格限制代码对本地系统资源的访问,通过这样的措施保证对代码的有效隔离,防止对本地系统造成的破坏,
- 沙箱主要限制系统资源访问(CPU、内存、文件系统、网络)
发展
-
在Java中将执行程序分为本地代码和远程代码两种。本地代码默认视为可信任的,而远程代码则被看作是不受信任的,对于授信的本地代码,可以访问一切本地资源。而对于非授信的远程代码在早期的java实现中,安全依赖于沙箱机制。下图为jdk1.0安全模型。
-
这种一分为二的方式,阻挡了远程代码访问本地系统的文件。jdk1.1中增加了安全策略,允许用户指定代码对本地资源的访问权限。
- jdk1.2再次进行了改进,增加了代码签名。不论本地代码或远程代码,都会按照用户的安全策略设定,由类加载器加载到虚拟机