2012-08-27 11 views
5

私はRailsプロジェクトにプラグインアーキテクチャを実装しています。プラグインのアーキテクチャには、プラグインの作者がサーバー上で実行されるRubyコードを書く能力が含まれています。プラグインの作者に破壊的なコードを書く能力がないように、これを安全にしたいと思います。限定された環境でRubyコードを実行

私は他のオプションを利用することができますが、必要なことは、限られた範囲を持つ独立した環境でプラグインのRubyコードを実行することです。私はtherubyracer gemの精神で何かを考えていますが、私はJavaScriptの代わりにRubyを安全に実行したいと思います。

私はこれを行う良い方法を理解できません。私はbindingsオブジェクトでevalを使用することを考えましたが、evalというファイルは難しく、バインディングを適切に制限することはできません。たとえば、モデル上でdestroy_allのようなプラグインを実行したり、アプリ内の既存のコードをモンキーに修正したりすることはできません。

私はこの1つでかなり困惑しています。誰にでもアイデアはありますか?

+0

あなたはこの質問といくつかの運を持っているかもしれません:たまにサービスは未知のユーザによって埋め込まれたスクリプトのためのレベル4を使用http://stackoverflow.com/questions/406833/language-in-a-sandbox-インレール – Earlz

答えて