我希望允许用户从浏览器客户端提交Java / Scala源代码,并在服务器上编译/执行它。但同时,我希望限制用户在服务器上运行潜在恶意的代码。
例如,我想禁止提交的源代码访问文件系统以及入站/出站网络访问。我还应该限制什么?
哪些Java / Scala库应该明确禁止客户端使用?例如,这是我的被禁止的API /库列表:
java.lang.System
java.lang.Runtime
java.io.*
java.nio.*
scala.io.*
java.net
我应该如何正确地对不受信任的Java/Scala代码进行沙箱处理?
System.exit()
的东西。 - om-nom-nom