0

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

我认为原则遵循这些步骤。

  1. 用户提交 C 代码。

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

  3. GCC 编译代码。

  4. GCC 返回字符串并发送到网站(Webserver)

  5. Webserver 将字符串返回给用户。

步骤对吗?那么,如何防范恶意代码,例如从服务器中删除所有文件?

4

1 回答 1

1

来自http://codepad.org/about

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

还:

偏执狂

当您的应用程序远程代码执行时,您必须预料到安全问题。我不仅依赖 chroot 和 ptrace 主管,还采取了一些额外的预防措施:

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

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

于 2016-11-01T02:14:27.350 回答