0

我正在尝试构建一个测试我的 ruby​​ 代码的小应用程序。我用谷歌搜索但没有多大帮助(可能是错误的单词选择)。我正在尝试创建codecademy/ codeschool/tryruby站点提供的功能。它们提供了一个在线运行代码的集成环境。我无法找到从哪里开始,即为什么这次没有代码:(。只需要知道什么具体technologies/links我必须为这个功能深入研究。

如果存在此类功能,请提供任何在线阅读资源。

4

2 回答 2

1

如果您想为 ruby​​ 执行此操作,还可以查看 tryruby.com的来源。请参阅https://github.com/Sophrinix/TryRuby(它不是当前版本的来源)。

回购似乎不是太最新,但它可以作为一个起点,或者其中一个分叉将。

HTH。

于 2013-03-07T09:56:59.233 回答
1

无法给出所有步骤,但基础很清楚(Ruby 的示例):

  • 创建一个基本的前端 - 可能只是一个大的 textarea 表单和一个提交按钮
  • 在服务器上,获取表单的内容,使用eval执行它并将输出返回到页面(使用简单的 erb)
  • 如果您希望它具有某种交互性,您可以用已经存在的内容来补充表格。

之后,是时候玩交互了(以 ajax 风格进行以避免刷新并提供更好的体验),但这是锦上添花,我将从上面的基础开始。

警告:执行最终用户发送的任意代码可能(并且将会)很危险。这看起来更像是一个实验,如果它变得更多,请务必检查您的安全性(您基本上授予我在您的服务器上执行我想要的任何代码的权利)。

执行任意代码的上下文中的安全性是一个庞大而复杂的主题。从某事开始:

  • 您的问题类似于“代码注入”问题-除了您实际上是在开门。基本示例:如果我提交的指令会停止进程怎么办?如果我开始删除您服务器机器上的所有文件夹?
  • 您可能想查看Ruby 安全级别
  • 更好的是,看看 Sven Fuch用于解析和执行代码的“安全模式”

您的目标应该是完全“沙箱化”代码的执行:让它在一个单独的专用进程(甚至是 VM)中运行,在更糟糕的情况下,它可能会在不影响其他进程的情况下被销毁,并且对资源的访问非常有限。

祝你好运 !

于 2013-03-07T09:02:01.807 回答