我正在尝试构建一个用于测试我的Ruby代码的小型应用程序。我用谷歌搜索,但没有太多帮助(可能是错误的单词选择)。我正在尝试创建codecademy / codeschool / tryruby网站提供的功能。它们提供了一个集成的环境来在线运行代码。我找不到从何处开始的内容,即为什么这次没有代码:(。只需要知道我必须为此功能挖掘的特定technologies / links

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

最佳答案

无法给出所有步骤,但是基础很明确(Ruby示例):


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


之后,可能是时候进行互动了(以ajax风格进行操作以避免刷新并提供更好的体验),但这很可取,我将从上面的基础知识开始。

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

在执行任意代码的上下文中的安全性是一个大而复杂的主题。首先开始:


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


您的目标应该是完全“沙盒化”代码的执行:使代码在单独的专用进程(甚至是VM)中运行,在更坏的情况下,可以对资源进行非常有限的破坏,而不会影响其他代码。

祝好运 !

关于javascript - 如何在网站中嵌入在线ruby/javascript代码执行器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15266255/

10-12 00:21
查看更多