网站安全ruby脚本由用户执行

时间:2012-01-09 22:45:43

标签: ruby rvm interpreter

假设我想为用户提供将代码放入textarea并将其用于教育目的的可能性。

例如,用户使用print "hello"

填充输入

他提交表格 - >代码由服务器处理 - >用户看到结果

但我想避免这样的事情:

  • 操纵文件系统
  • dos攻击像叉子
  • 在网上提出请求
  • ...

所以这个ruby解释器应该仅限于一些基本功能。

有可能吗?

2 个答案:

答案 0 :(得分:0)

我认为你可以使用JRuby(http://jruby.org/)实现。您可以使用JVM安全策略功能创建沙箱。在这种情况下,您无需担心用户输入 - JRuby正在执行的脚本将受到安全设置的限制。

答案 1 :(得分:-1)

我不知道解释器的限制,但我认为在提交之前需要解析输入,如果你有类似system("rm -rf ~")的东西,请不要将它发送给解释器并重新发送警告。