我想创建一个Web应用程序,该应用程序将允许用户上传一些C代码,并查看其执行结果(该代码将在服务器上编译)。用户不受信任,这显然会带来巨大的安全隐患。
因此,我需要为应用创建某种沙箱。在最基本的级别上,我想将对文件系统的访问限制为某些指定的目录。我无法直接使用chroot jails,因为Web应用程序未以特权用户身份运行。我想设置监狱的suid可执行文件是一个选择。
上载的程序会很小,因此它们应快速执行(最多几秒钟)。因此,我可以在预设的超时后终止该进程,但是如何确保它不会产生新的进程?或者如果我做不到,那么杀死整个pgid是一种可靠的方法吗?
除了“根本不做”之外,什么是最好的方法? :)我还错过了哪些其他明显的安全问题?
FWIW,该网络应用将使用Python编写。
最佳答案
连同其他建议,您可能会发现这很有用。
http://www.eelis.net/geordi/
这来自http://codepad.org/about的关于页面codepad.org。
关于python - Linux中的沙箱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1019707/