Codepad.org网站的原理是什么?



我想知道Codepad.org网站的原理。(在线C编译器原理)

我认为原则遵循以下步骤。

  1. 用户提交C代码

  2. 网站发送到安装在服务器上的GCC。

  3. GCC返回字符串并发送给web (Webserver)

  4. web服务器返回字符串给用户。

这个步骤对吗?那么,如何防止恶意代码,如删除服务器上的所有文件?

From http://codepad.org/about:

代码执行由一个基于geordi的主管处理。该策略是在ptrace下运行所有内容,不允许或忽略许多系统调用。编译器和最终可执行文件都在chroot jail中执行,有严格的资源限制。管理器是用Haskell编写的。

:

偏执

当你的应用远程代码执行时,你必须预料到安全问题。我没有仅仅依赖chroot和ptrace管理器,而是采取了一些额外的预防措施:

  • 管理进程运行在虚拟机上,这些虚拟机上有防火墙,因此它们无法进行传出连接。

  • 运行虚拟机的机器也有严格的防火墙,并定期从它们的源映像进行恢复。

最新更新