如何使安全的在线编译器?

我想做简单的在线编译器,从浏览器取代码,发送给服务器,编译它,并返回到浏览器的执行结果。

恐怕有人会执行format C:\从代码或类似的东西。 有什么办法来防止它?

PS我正在寻找Windows解决scheme。

Solutions Collecting From Web of "如何使安全的在线编译器?"

您将需要使用多层操作系统功能。 以限制用户的身份访问操作系统,在防火墙虚拟机中运行编译器和生成的程序。

如果一切顺利,虚拟机中的操作系统将阻止他们执行格式化驱动器等任何操作。 但是,如果不是,他们可以让管理员访问它,事实上,这是一个一次性虚拟机,从外部有限制的意味着管理员访问实际上并不值钱。 您可以简单地重新映像VM并重新开始。 (事实上​​,即使在一切正常的情况下,您也可能想要将其作为预防措施的图像)。

有了这两层保护,你应该很安全。

现在,在VM中,我可能只是运行Linux。 即使服务器是一个Windows机器,在虚拟机内部,你可以安装一个最小的Linux发行版,并使用setrlimit等来setrlimit进程内存和CPU时间。 但是,如果你也想要Windows,工作对象https://msdn.microsoft.com/en-us/library/ms684161(VS.85).aspx实现类似的资源限制。 只要确保运行编译器和程序的用户帐户在驱动器上也具有严格限制的权限(在任一操作系统上)。

当然,你也可以在没有虚拟机的情况下在主机操作系统上做这样的事情……但是如果出现了问题,你就不能轻易地把它们全部替换掉​​,管理员访问可能绕过你的其他防火墙或CPU限制。 我肯定会使用这两个层次。

顺便说一句,尽管VM层,不要忘了仍然使用正确的XSRF和XSS护理,就像任何其他网络形式。