我正在尝试创建一个网站,人们可以在那里运行上传的代码。SPOJ / ACM 之类的东西。如何确保代码不会损坏我的系统(限制对套接字、系统调用的访问)
我在网上浏览了许多解决方案,有些建议使用 chroot,但我不明白。这也需要配置,这可以通过配置等来完成吗?
注意我不是要求任何特定的语言,在可执行文件中运行。
我的开发设置是用于托管的 MAC 和 Linux,如果解决方案可以在两者上运行,那就太好了。不是要求。
我正在尝试创建一个网站,人们可以在那里运行上传的代码。SPOJ / ACM 之类的东西。如何确保代码不会损坏我的系统(限制对套接字、系统调用的访问)
我在网上浏览了许多解决方案,有些建议使用 chroot,但我不明白。这也需要配置,这可以通过配置等来完成吗?
注意我不是要求任何特定的语言,在可执行文件中运行。
我的开发设置是用于托管的 MAC 和 Linux,如果解决方案可以在两者上运行,那就太好了。不是要求。
我建议使用具有最低系统的虚拟机,只允许运行 ruby 而没有其他任何东西。我会使用一个 linux 系统,您可以在其中更大程度地锁定程序的执行,并具有扩展权限。
最后在每个程序运行之后,然后将虚拟机重置为检查点原始设置,从而消除任何可能发生的事故。
看看RubyCop
RubyCop 扫描 Ruby 代码并告诉您它是否安全。我们在 CodeSchool 使用它来检查用户提交的代码,然后再在服务器上对其进行评估。
请检查 Ruby 内置的污染机制