如何限制JVM / OSGi中的程序资源+权限?

时间:2009-11-18 12:50:15

标签: java security osgi

我想创建一个人们可以解决编程任务并最终上传他们的解决方案(使用任何JVM语言)的网站,以便对其进行验证并与他人共享。

我认为 OSGi (现在学习它)可能是处理这项任务的好工具(是吗?)。但显然我有点担心让其他人在我的主机上执行他们的代码(顺便说一下,基于输入/输出的解决方案是别的选择)。

所以我想我需要找出

a)如何允许/限制某些Java功能(例如,启动线程,发送邮件,编写文件等)。

b)如何限制程序/ bundle的CPU / RAM资源所以没有人可以通过无限循环使主机失效。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

b)我认为最安全的解决方案是为每个用户提交的解决方案创建专用的JVM。这样,您就拥有了所有操作系统的工具。

a)可以使用Permissions限制Java功能。我从来没有试过用它做一些复杂的事情,但为第三方输入制定一个可靠的政策肯定是微不足道的。也许谷歌的Appengine SDK可能有所帮助。我怀疑它正在使用权限来模仿Appengine在本地的行为。