5

私の知る限り、Erlang はエラー処理とプロセスの分離のための高度な機能を提供します。

ユーザーがコードを送信して共有サーバー環境で実行できるようにするシステムを構築しており、それを安全にする必要があります。

要件は次のとおりです。

  • ユーザープロセスごとに CPU とメモリの使用量を個別に制限します。
  • ユーザープロセスが他のプロセスと通信することを禁止します (そのような目的のために特別に設計された一部のプロセスを除く)。
  • すべてのシステム リソース (シェル、ファイル システムなど) へのアクセスを禁止します。
  • エラーまたはリソース消費量が多い場合にユーザープロセスを終了します。

これらすべてをErlangで実行し、パフォーマンスを効率的に保つことは可能ですか?

4

2 に答える 2

2

一般に、Erlang は、ユーザーが挿入できるコードをサンドボックス化する手段を提供しません。独自の保護コードを書いてみることもできますが、かなり難しいです。

より良い選択は、おそらく「安全な haskell」のような言語でしょう:

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

これは、この種のことを行うために特別に構築されています。

Erlang が提供する分離は、悪意のあるモジュールが挿入されるのを防ぐためのものではありません。実際、分散型のケースでもそのような保護はありません。2 台のマシンが接続されるとすぐに、もう一方のマシンに対してできることは制限されなくなります。

于 2012-11-03T21:00:25.793 に答える
1

過去に Safe Erlang に関する作業が行われており、それに関するいくつかの論文を見つけることができます。ErlHive プロジェクトは、興味深い方法でこの問題に取り組んでいます。

于 2012-11-05T07:30:57.783 に答える