擅长:python、mysql、java
<p>我认为这在很多方面都是非常危险的。你实际上是在向你的系统上发现的任何漏洞敞开大门(而你通常只限于那些人们可以远程利用的漏洞)。如果你能避免的话,我会说不要这样做。</p>
<p>如果您确实想这样做,您可能需要使用某种虚拟机来运行用户代码。使用类似<a href="http://www.linux-kvm.org" rel="nofollow noreferrer">KVM</a>的方法,可以使用相同的基本映像设置多个虚拟机(您甚至可以将快照存储在已启动的状态,但我不确定它将如何处理克隆)。然后可以按需创建VM,运行用户代码,返回结果,然后终止VM。如果您将vm彼此和网络隔离开来,那么用户可以对它们造成任何他们想要的破坏,并且不会损害物理服务器。在这种情况下,你暴露在自己面前的唯一危险是某种可以让他们逃离虚拟机的漏洞。。。这是非常罕见的,而且随着硬件虚拟化的改进,这种情况将更加罕见。</p>