2

我有一个 Web 应用程序,它允许用户输入要使用 IronRuby 执行的 Ruby 程序,并将其结果输出到网页。

这是我用来创建 IronRuby 引擎并运行代码的代码:

var engine = Ruby.CreateEngine();

var source = engine.CreateScriptSourceFromString
                (sourceCodeSpecifiedByUser, SourceCodeKind.Statements);

source.ExecuteProgram();

这存在一个安全问题,因为任何用户都可以运行 Ruby 代码来执行不安全的任务(例如,枚举/修改文件)。

我想尝试将像File.open,Dir这样的字符串列入黑名单肯定会失败,所以我什至没有考虑过这种可能性。

有没有办法以较低的权限运行 IronRuby 引擎以避免安全问题?

4

0 回答 0