gpt4 book ai didi

erlang - 使用 Erlang 沙盒化用户代码

转载 作者:行者123 更新时间:2023-12-04 20:48:39 26 4
gpt4 key购买 nike

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

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

要求是:

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

  • 是否有可能使用 Erlang 完成所有这些并保持其性能高效?

    最佳答案

    一般来说,Erlang 不提供用户可以注入(inject)的沙箱代码的方法。您可以尝试编写自己的保护代码,但这相当困难。

    更好的选择可能是像“safe haskell”这样的语言:

    http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/safe-haskell.html

    这是专门为做这种事情而设计的。

    Erlang 提供的隔离并不是为了防止恶意模块被注入(inject)。事实上,分布式情况下也没有这样的保护。两台机器连接后,您可以对另一台机器执行的操作没有限制。

    关于erlang - 使用 Erlang 沙盒化用户代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211999/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com