一种在Java虚拟机中安全运行第三方代码的方法技术

技术编号:8271636 阅读:190 留言:0更新日期:2013-01-31 03:57
本发明专利技术公开了一种利用JVM提供的自定义类加载器的技术实现安全运行不可控的第三方代码的方法。通过控制第三方代码中可以使用的本地模块和类,可以有效限制其对外部资源的访问,同时也可以隔离多个同时运行的第三方代码。本发明专利技术也提供了在第三方代码中以可控的方式透明访问本地资源的方法。

【技术实现步骤摘要】
本专利技术涉及信息安全领域,特别涉及一种安全运行不可控的第三方代码的方法。
技术介绍
软件或服务器往往需要允许用户执行自定义的代码以实现高度的可定制性或安全性。但是由于第三方编写的代码的不可控性,限制其运行环境以保护服务器资源或上层软件的正常运行就成了一个很重要的问题。JVM是Java Virtual Machine (Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码·时,实际上最终还是把字节码解释成具体平台上的机器指令执行。在JVM中使用一个类时,该类的加载过程是唯一可以在外部进行干预的,这可以通过JVM提供的自定义类加载器来实现。通常JVM中引入自定义类加载器的主要目的是实现代码的热部署,如OSGi系统等。OSGi (Open Service Gateway Initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提本文档来自技高网...

【技术保护点】
一种在Java虚拟机中安全运行第三方类的方法,其特征在于,该方法包括:创建自定义加载器,所述自定义加载器的父加载器为Java虚拟机当前线程的类加载器;通过所述自定义加载器来加载第三方类,由所述自定义加载器判断是否允许所述第三方类加载特定的系统类;如果允许,则所述自定义加载器委托其父加载器加载所述系统类;若不允许,则抛出异常,从而控制所述第三方类中所能使用的类。

【技术特征摘要】
1.一种在Java虚拟机中安全运行第三方类的方法,其特征在于,该方法包括 创建自定义加载器,所述自定义加载器的父加载器为Java虚拟机当前线程的类加载器; 通过所述自定义加载器来加载第三方类,由所述自定义加载器判断是否允许所述第三方类加载特定的系统类; 如果允许,则所述自定义加载器委托其父加载器加载所述系统类; 若不允许,则抛出异常,从而控制所述第三方类中所能使用的类。2.根据权利要求I所述的方法,其特征在于,根据需要,能够同时创建多个所述自定义加载器以执行多份所述第三方类。3.根据权利要求I所述的方法,其特征在于,关于所述第三方类所...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:北京深思洛克软件技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1