代码之家  ›  专栏  ›  技术社区  ›  Ming-Tang

用户提供的代码安全性

  •  1
  • Ming-Tang  · 技术社区  · 14 年前

    我见过一些可以从浏览器运行代码的网站,这些代码是在服务器上评估的。

    运行用户贡献代码的应用程序的安全最佳实践是什么?除了访问和更改服务器的敏感信息。 (例如,使用标准库的精简版本的Python) 如何防止诸如非暂停和/或CPU密集型程序之类的DOS?(我们不能在这里使用静态代码分析)给类型检查系统加药怎么样?

    python、prolog和haskell是建议讨论的示例。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jerry Coffin    14 年前

    “最佳实践”(我真的是唯一一个 憎恨 那个短语?)可能根本就不做。

    如果你真的 必须 做它,将它设置为在虚拟机中运行(我不是指类似于JVM的东西;我是指托管OS的东西),这样就可以很容易地从快照中恢复虚拟机(或者任何有问题的虚拟机调用它)。

    在大多数情况下,你需要做的只是超越这一点。如果没有额外的工作来锁定它,即使是一个虚拟机也可以使用足够的资源来降低响应能力,因此很难终止并重新启动它(您通常可以最终完成,但“最终”很少是您想要的)。您通常还希望设置一些配额来限制其总CPU使用量,可能会将其限制为使用单个CPU(并在至少有两个CPU的计算机上运行它),限制其总内存使用量等。例如,在Windows中,您可以通过在作业对象中启动VM,并限制作业对象可用的资源来完成(至少大部分)。