如何在受限沙箱中运行 java 代码(无网络、文件系统访问)
Posted
技术标签:
【中文标题】如何在受限沙箱中运行 java 代码(无网络、文件系统访问)【英文标题】:How to run java code in a restricted sandbox (without network, filesystem access) 【发布时间】:2012-02-08 11:32:21 【问题描述】:假设某个程序员给了我一个可执行的 jar(来自 Java 代码)以及要使用的入口点。我想在没有网络或文件系统访问或数据库访问以及固定数量的 CPU 和内存的受限沙盒环境中从 Java 代码(以编程方式)运行这个 jar。即,Java 代码不应对我的 jvm 上运行的其他程序造成任何副作用。
理想情况下,我希望根据情况允许某些访问(例如,仅允许某个目录中具有配额的文件)。
【问题讨论】:
你读过这个吗? ***.com/questions/2867747/… 【参考方案1】:您可以使用策略文件控制环境 http://docs.oracle.com/javase/1.4.2/docs/guide/security/PolicyFiles.html#Examples (archived version @archive.org)
你可以运行然后运行你的 jar
java -Djava.security.manager -Djava.security.policy=/path/your_policy_file.policy -jar
【讨论】:
那么是否可以执行以下操作:以完全访问权限运行我的程序,然后以限制的方式以编程方式加载 jar【参考方案2】:此页面详细描述了该过程:
http://www.jayway.com/2014/06/13/sandboxing-plugins-in-java/
【讨论】:
以上是关于如何在受限沙箱中运行 java 代码(无网络、文件系统访问)的主要内容,如果未能解决你的问题,请参考以下文章