私はRailsプロジェクトにプラグインアーキテクチャを実装しています。プラグインのアーキテクチャには、プラグインの作者がサーバー上で実行されるRubyコードを書く能力が含まれています。プラグインの作者に破壊的なコードを書く能力がないように、これを安全にしたいと思います。限定された環境でRubyコードを実行
私は他のオプションを利用することができますが、必要なことは、限られた範囲を持つ独立した環境でプラグインのRubyコードを実行することです。私はtherubyracer gemの精神で何かを考えていますが、私はJavaScriptの代わりにRubyを安全に実行したいと思います。
私はこれを行う良い方法を理解できません。私はbindings
オブジェクトでeval
を使用することを考えましたが、eval
というファイルは難しく、バインディングを適切に制限することはできません。たとえば、モデル上でdestroy_all
のようなプラグインを実行したり、アプリ内の既存のコードをモンキーに修正したりすることはできません。
私はこの1つでかなり困惑しています。誰にでもアイデアはありますか?
あなたはこの質問といくつかの運を持っているかもしれません:たまにサービスは未知のユーザによって埋め込まれたスクリプトのためのレベル4を使用http://stackoverflow.com/questions/406833/language-in-a-sandbox-インレール – Earlz