最近几个月我对这些东西进行了很多研究,但我无法掌握任何坚实的基础,说明它们如何在这么多语言中毫无问题地运行不安全的脚本!
我确定他们正在运行虚拟机,因为特定于语言的沙箱不会削减它,但是将每种语言列入白名单呢?
必须有另一种我没有看到的约束。
最近几个月我对这些东西进行了很多研究,但我无法掌握任何坚实的基础,说明它们如何在这么多语言中毫无问题地运行不安全的脚本!
我确定他们正在运行虚拟机,因为特定于语言的沙箱不会削减它,但是将每种语言列入白名单呢?
必须有另一种我没有看到的约束。
Codepad 解释了他们如何在about 页面上提供安全性:
codepad.org 是一个在线编译器/解释器。[...] 策略是在 ptrace 下运行所有内容,同时不允许或忽略许多系统调用。编译器和最终可执行文件都在 chroot 监狱中执行,具有严格的资源限制。[...]
我不仅依赖 chroot 和 ptrace 主管,还采取了一些额外的预防措施:
主管进程在虚拟机上运行,这些虚拟机有防火墙,因此它们无法进行传出连接。
运行虚拟机的机器也有严格的防火墙,并定期从它们的源映像中恢复。
这对我来说似乎是一个合理的策略。
有关沙盒技术的更多背景信息,请参阅以下内容:什么是沙盒?,如何限制应用程序对我的计算机执行的操作?,监控系统调用(以可靠和安全的方式),以及 维基百科在 chroot 上的条目。