根据安全策略创建java沙箱

时间:2010-05-19 17:06:02

标签: java sandbox

我需要创建环境来运行可能不受信任的代码。程序允许连接到预先配置的地址:端口,没有别的(甚至读取系统时间)。我编译了类白名单。我搜索了类似的问题,但发现只有基于SecurityManager的模板,其中AFAIK已被弃用。 任何人都可以给我一个简单的示例,了解如何基于安全策略和AccessController在沙箱中运行代码吗?

1 个答案:

答案 0 :(得分:16)

据我所知,它仍然是运行安全检查的SecurityManager。但它现在似乎委托给AccessController。

首先,您需要打开安全管理器:

-Djava.security.manager

如果你省略这个论点,就不会有任何沙盒。

其次,你需要知道在哪里找到政策文件:

-Djava.security.policy =

这会将您的权限添加到已在java主目录中定义的权限。原始沙箱规则在... / jre / lib / security / java.policy中。但是,如果您希望自己的政策成为唯一一个需要使用双“=”的政策。通过这种方式,您可以完全控制所允许的内容。

例如:

-Djava.security.policy ==

我建议你使用Java附带的“policytool”。它是相当基础的,但它可以帮助您快速编写具有正确语法的策略文件。

我希望这会有所帮助......