Rails中沙箱中的语言

我发现有一个沙箱gem(由那些在你的浏览器中尝试ruby的人创建,但它只与Ruby 1.8兼容。另一个问题是我再也找不到了它(似乎他们停止服务于gem)服务器…)。

那么,有没有安全的方法在沙盒中运行ruby(所以你可以从浏览器运行它)? 或者在沙箱中运行(例如lua / python)的简单方法(没有文件系统访问,没有对象的创建等)并且可以从Ruby(Rails 2.2)调用?

我想创建一个类似try_ruby的应用程序,即使没有下面的ruby也是如此。 但它必须是一种简单的语言(我看到有一个ruby的序言,甚至是一个口齿不清,但我不认为它们很容易学习语言……)。

那么,你有什么建议或提示吗? 或者我应该开始在Ruby中创建自己的DSL(如果有创建一个安全系统的解决方案)?

谢谢

我正在基于用C编写的ruby解释器的修改开发一个ruby沙箱的实现,我最近发布了一个名为shikashi ( rdoc文档 )的gem的function版本。

您应该尝试在浏览器中嵌入JRuby。

http://ruby-in-browser.googlecode.com/svn/trunk/evalruby/index.html

写下原始gem的人消失了,KeyserSöze风格: http ://www.rubyinside.com/why-the-lucky-stiff-is-missing-2278.html

我已经读过JRuby的gem更新或更新,但到目前为止我发现它已经错了。 以下是一些设置说明: http : //flouri.sh/2009/4/4/how-to-set-up-the-jruby-sandbox

总的来说,看起来Ruby现在缺乏一个可靠的实现:(

我今天早上在hackety.org (死链接) 上看到了这篇文章 。 也许它可以为您提供正确方向的指导

另一种方式是像codepad.org那样做(VM隔离和检查调用)

我不确定您是否要在沙盒中运行任何语言。 但我发现JavaScript已经作为沙盒语言运行了很长时间。 ruby racer项目允许您将v8引擎嵌入ruby中。 希望有所帮助。