如何在网站中嵌入在线ruby / javascript代码执行器

时间:2013-03-07 08:20:16

标签: javascript ruby parsing ide

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

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

2 个答案:

答案 0 :(得分:1)

无法完成所有步骤,但基础知识很明确(Ruby的例子):

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

之后,可以尝试使用互动(以ajax风格进行以避免刷新并提供更好的体验),但这是锦上添花,我将从上面的基础开始。

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

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

  • 你的问题类似于“Code injection”问题 - 除了你实际上是在打开门。基本示例:如果我提交暂停流程的指令怎么办?如果我开始删除服务器上的所有文件夹?
  • 您可能需要查看Ruby safe level
  • 更好的是,请查看Sven Fuch“Safe mode”以解析和执行代码

你的目标应该是完全“沙盒化”代码的执行:让它在一个独立的专用进程(甚至VM)中运行,在最坏的情况下可以在不影响其他进程的情况下进行破坏,访问权限非常有限资源。

祝你好运!

答案 1 :(得分:1)

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

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

HTH。