基于安全策略创建java沙盒
我需要创建环境来运行可能不受信任的代码。允许程序连接到预配置的地址:端口,而不连接其他地址(甚至读取系统时间)。我已经编辑了班级白名单。我搜索过类似的问题,但只找到了基于SecurityManager的模板,AFAIK不推荐使用该模板。基于安全策略创建java沙盒,java,sandbox,Java,Sandbox,我需要创建环境来运行可能不受信任的代码。允许程序连接到预配置的地址:端口,而不连接其他地址(甚至读取系统时间)。我已经编辑了班级白名单。我搜索过类似的问题,但只找到了基于SecurityManager的模板,AFAIK不推荐使用该模板。 有谁能给我一个简单的示例,告诉我如何基于安全策略和AccessController在沙箱中运行代码吗?据我所知,运行安全检查的仍然是SecurityManager。但如今它似乎被委托给了AccessController 首先,您需要打开安全管理器: -Djava
有谁能给我一个简单的示例,告诉我如何基于安全策略和AccessController在沙箱中运行代码吗?据我所知,运行安全检查的仍然是SecurityManager。但如今它似乎被委托给了AccessController 首先,您需要打开安全管理器: -Djava.security.manager 如果你忽略这个论点,就不会有任何沙箱 其次,您需要告诉在哪里可以找到策略文件: -Djava.security.policy= 这会将您的权限添加到java主页中已定义的权限。原始沙盒规则位于…/jre/lib/security/java.policy中。但是,如果希望您的策略是唯一的策略,则需要使用双精度“=”。这样你就能完全控制允许的事情 例如: -Djava.security.policy== 我建议您使用Java附带的“policytool”。这是相当基本的,但它可以帮助您使用正确的语法快速编写策略文件 我希望这有助于