我正在尝试构建一个小应用程序来测试我的 ruby 代码。我用谷歌搜索了它,但没有太大帮助(可能是选词错误)。我正在尝试创建 codecademy
/codeschool
/tryruby
网站提供的功能。他们提供了一个在线运行代码的集成环境。我无法找到从哪里开始,即为什么这次没有代码:(。只需要知道我必须深入研究哪些具体的技术
/链接
对于此功能。
如果存在此类功能,请提供任何在线资源供阅读。
最佳答案
无法给出所有步骤,但基础知识很清楚(Ruby 示例):
- 创建一个基本前端 - 可以只是一个大文本区域表单和一个提交按钮
- 在服务器上,获取表单内容,使用 eval 执行它并将输出返回到页面(使用简单的erb)
- 如果您希望它具有某种互动性,您可以用已有的内容补充表单。
之后,就可以进行交互了(以 ajax 风格进行,以避免刷新并提供更好的体验),但这是锦上添花,我将从上面的基础知识开始。
警告:执行最终用户发送的任意代码可能(并且将会)危险。这看起来更像是一个实验,如果它变得更多,一定要检查你的安全性(你基本上给了我在你的服务器上执行我想要的任何代码的权利)。
执行任意代码的安全性是一个庞大而复杂的主题。首先:
- 您的问题类似于“Code injection”问题 - 只不过您实际上是在打开门。基本示例:如果我提交停止进程的指令怎么办?如果我开始删除您服务器计算机上的所有文件夹?
- 您可能想查看Ruby safe level
- 更好的是,查看 Sven Fuch“Safe mode ”来解析和执行代码
您的目标应该是完全“沙箱”代码的执行:使其在单独的专用进程(甚至虚拟机)中运行,在最坏的情况下,该进程可能会在不影响其他进程的情况下被销毁,并且访问权限非常有限资源。
祝你好运!
关于javascript - 如何在网站中嵌入在线 ruby/javascript 代码执行器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266255/