Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道Codepad.org网站的原理。(在线C编译器原理)
我认为原则遵循这些步骤。
用户提交 C 代码。
网站发送到安装在服务器上的 GCC。
GCC 编译代码。
GCC 返回字符串并发送到网站(Webserver)
Webserver 将字符串返回给用户。
步骤对吗?那么,如何防范恶意代码,例如从服务器中删除所有文件?
来自http://codepad.org/about:
代码执行由基于 geordi 的主管处理。策略是在 ptrace 下运行所有内容,不允许或忽略许多系统调用。编译器和最终可执行文件都在 chroot 监狱中执行,具有严格的资源限制。主管是用 Haskell 编写的。
还:
偏执狂 当您的应用程序是远程代码执行时,您必须预料到安全问题。我不仅依赖 chroot 和 ptrace 主管,还采取了一些额外的预防措施: 主管进程在虚拟机上运行,这些虚拟机有防火墙,因此它们无法进行传出连接。 运行虚拟机的机器也有严格的防火墙,并定期从它们的源映像中恢复。
偏执狂
当您的应用程序是远程代码执行时,您必须预料到安全问题。我不仅依赖 chroot 和 ptrace 主管,还采取了一些额外的预防措施:
主管进程在虚拟机上运行,这些虚拟机有防火墙,因此它们无法进行传出连接。
运行虚拟机的机器也有严格的防火墙,并定期从它们的源映像中恢复。