2009-01-02 55 views
5

我发现那里有一个沙箱宝石(创造了try ruby in your browser的家伙,但它只与Ruby 1.8兼容。另一个问题是我找不到它了(看起来它们停止了从服务器服务的宝石......)。沙盒中的语言在轨道上

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

我想做一个像try_ruby的应用程序,即使没有底下有一颗红宝石。但它必须是一种简单的语言(我发现ruby有一个序言,甚至是一个lisp,但我认为他们不容易学习语言......)。

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

THX

回答

0

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

4

我开发基于红宝石的修改对红宝石沙箱的实现我最近发布了一个叫做shikashirdoc documentation)的功能版本的解释器。

+0

嗨,我想在rails项目中使用你的宝石。我得到这个奇怪的未定义的方法'影子'enumerable.this是当访问关联代理方法 – 2010-10-15 20:37:30

0

我不确定你是否想在沙箱中运行任何语言,但我发现JavaScript已经作为沙盒语言很长时间The ruby racer project让你将v8引擎嵌入到r uby。希望有所帮助。