使用Erlang沙盒用户代码

Ale*_*hin 5 erlang unsafe sandbox

据我所知,Erlang提供了错误处理和进程隔离的高级功能.

我正在构建一个系统,允许用户提交他们的代码以便在共享服务器环境中执行,并且需要使其安全.

要求是:

  • 限制每个用户进程的CPU和内存使用量.
  • 禁止用户进程与其他进程通信(除了为此目的专门设计的某些进程).
  • 禁止访问所有系统资源(shell,文件系统,...).
  • 在出现错误或高资源消耗的情况下终止用户进程.

是否可以通过Erlang实现所有这些并保持其性能效率?

Van*_*ley 1

过去已经有人在 Safe Erlang 上完成了工作,您可以找到几篇关于它的论文。ErlHive 项目以一种有趣的方式解决了这个问题。