栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java的沙箱安全机制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java的沙箱安全机制

java的沙箱安全机制

转自 “狂神说”

一、介绍

Java安全模型的核心就是java沙箱sandbox,将java代码限定在jvm特定的运行范围中,并严格限制代码对本地系统资源访问,这样来保证代码的有效隔离,防止对本地系统造成破坏。
所有java程序运行都可以指定沙箱,可以定制安全策略。
java将执行程序分成本地代码和远程代码,本地代码默认可信任,远程不受信任。JDK1.0时,非授信的远程代码的安全完全依赖于沙箱机制。
如此严格的安全机制给程序扩展带来障碍,因此后续1.1版本做了改进,增加了安全策略,允许用户指定代码访问本地资源的权限。

JDK1.2再次进行了改进,增加了代码签名。不论本地代码还是远程代码,都会按照用户的安全策略设定,有类加载器加载到jvm中权限不同的空间中,来实现差异化的权限控制。

目前最新安全机制是引入了域domain。jvm会把所有代码加载到不同系统域和应用域,系统域专门负责关键资源交互,而应用域则通过系统域部分代理来对所需资源进行访问。jvm中不同的protected domain,对应不同的权限。

二、java沙箱组成

基本组件:字节码检验器、类装载器、存取控制器、安全管理器、安全软件包。

  1. 字节码校验器 bytecode verifier
    确保java类文件遵循java语言规范,帮助程序实现内存保护。并不是所有类都经过字节码校验器,如核心类。
  2. 类加载器 class loader
    双亲委派机制、安全校验等,防止恶意代码干涉。守护类库边界。
  3. 存取控制器 access controller
    它可以控制核心API对操作系统的存取权限,控制策略可以有由用户指定。
  4. 安全管理器 security manager
    它是核心API和系统间的主要接口,实现权限控制,比存取控制器优先级高。
  5. 安全软件包 secruity package
    java.secruity下的类和扩展包下的类,允许用户为自己的应用增加新的安全特性。包括:安全提供者、消息摘要、数字签名、加密、鉴别等。

一般实使用ava开发服务端程序不涉及安全管理器,开发applet、app会用到。
打开安全管理器:
$ java -Djava.security.manager xxx
$ java -Djava.security.manager -DDjava.security.policy="${policypath}"
因为安全限制条件可以定制,所以还需要提供具体的安全策略文件路径,默认的策略文件路径是 JAVA_HOME/jre/lib/security/java.policy。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592369.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号