据我所知,Erlang提供了错误处理和进程隔离的高级功能。
我正在构建一个系统,允许用户提交他们的代码以便在共享服务器环境中执行,并且需要使其安全。
要求是:
是否可以通过Erlang实现所有这些并保持其性能效率?
答案 0 :(得分:2)
通常,Erlang不提供用户可以注入的沙箱代码的方法。您可以尝试编写自己的保护代码,但这很难。
更好的选择可能是“安全的哈克尔”这样的语言:
http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/safe-haskell.html
专门用来做这种事情。
Erlang提供的隔离并非旨在防止注入恶意模块。事实上,在分布式案例中也没有这样的保护。只要连接了两台机器,就可以对另一台机器进行限制。
答案 1 :(得分:1)
过去在Safe Erlang上已经完成了一些工作,你可以找到几篇关于它的论文。 ErlHive项目以一种有趣的方式解决了这个问题。