如何创建Java沙箱?

cor*_*ath 46 java security plugins sandbox

我想让我的应用程序运行其他人的代码,也就是插件.但是,我有什么选择才能使其安全,因此他们不会编写恶意代码.我该如何控制他们能做什么或不能做什么?

我偶然发现JVM有一个"内置沙箱"功能 - 它是什么,这是唯一的方法吗?是否有用于制作沙箱的第三方Java库?

我有什么选择?赞赏指南和示例的链接!

tan*_*ens 23

您正在寻找安全经理.您可以通过指定策略来限制应用程序的权限.


Daf*_*ees 18

  • 定义和注册自己的安全管理器将允许您限制代码的作用 - 请参阅SecurityManager的 oracle文档.

  • 另外,考虑创建一个单独的机制来加载代码 - 即你可以编写或实例化另一个类加载器来从特殊的地方加载代码.您可能有一个加载代码的约定 - 例如从特殊目录或特殊格式的zip文件(作为WAR文件和JAR文件).如果您正在编写一个类加载器,它会使您处于必须执行工作以加载代码的位置.这意味着如果您想要拒绝某些内容(或某些依赖项),则无法加载代码.http://java.sun.com/javase/6/docs/api/java/lang/ClassLoader.html


Arn*_*ach 5

看看java-sandbox项目,该项目允许轻松创建非常灵活的沙箱来运行不受信任的代码.