Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于安全策略创建java沙盒_Java_Sandbox - Fatal编程技术网

基于安全策略创建java沙盒

基于安全策略创建java沙盒,java,sandbox,Java,Sandbox,我需要创建环境来运行可能不受信任的代码。允许程序连接到预配置的地址:端口,而不连接其他地址(甚至读取系统时间)。我已经编辑了班级白名单。我搜索过类似的问题,但只找到了基于SecurityManager的模板,AFAIK不推荐使用该模板。 有谁能给我一个简单的示例,告诉我如何基于安全策略和AccessController在沙箱中运行代码吗?据我所知,运行安全检查的仍然是SecurityManager。但如今它似乎被委托给了AccessController 首先,您需要打开安全管理器: -Djava

我需要创建环境来运行可能不受信任的代码。允许程序连接到预配置的地址:端口,而不连接其他地址(甚至读取系统时间)。我已经编辑了班级白名单。我搜索过类似的问题,但只找到了基于SecurityManager的模板,AFAIK不推荐使用该模板。
有谁能给我一个简单的示例,告诉我如何基于安全策略和AccessController在沙箱中运行代码吗?

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

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

-Djava.security.manager

如果你忽略这个论点,就不会有任何沙箱

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

-Djava.security.policy=

这会将您的权限添加到java主页中已定义的权限。原始沙盒规则位于…/jre/lib/security/java.policy中。但是,如果希望您的策略是唯一的策略,则需要使用双精度“=”。这样你就能完全控制允许的事情

例如:

-Djava.security.policy==

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

我希望这有助于