ユーザーがIronRubyを使用して実行されるRubyプログラムを入力し、その結果をWebページに出力できるようにするWebアプリケーションがあります。
これは、IronRubyエンジンを作成してコードを実行するために使用するコードです。
var engine = Ruby.CreateEngine();
var source = engine.CreateScriptSourceFromString
(sourceCodeSpecifiedByUser, SourceCodeKind.Statements);
source.ExecuteProgram();
これにはセキュリティ上の問題があります。これは、どのユーザーも安全でないタスク(たとえば、ファイルの列挙/変更)を実行するRubyコードを実行できるためです。
File.open
のような文字列をブラックリストに登録しようとするとDir
失敗する可能性があるので、この可能性についても考慮していません。
セキュリティの問題を回避するために、より低い権限でIronRubyエンジンを実行する方法はありますか?