根据安全策略创建java沙箱

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

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

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

-Djava.security.manager

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

其次,您需要告诉在哪里找到策略文件:

-Djava.security.policy =

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

例如:

-Djava.security.policy ==

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

我希望这有帮助…