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

标签 javascript ruby parsing ide

我正在尝试构建一个小应用程序来测试我的 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/

相关文章:

javascript - Firefox 笔划文本锯齿状伪影

c# - 如果公司使用 C++、C# 或 Java 作为应用程序语言,为什么要学习 Perl、Python、Ruby?

ruby - 如何将数组转换为散列,其键是数组值,值是数组的索引

ios - 使用 Rpush Gem Ruby on Rails 向 App 发送通知

javascript - 如何抑制来自 PhantomJS 的错误消息?

ruby - 为什么 Parslet(在 Ruby 中)在解析空字符串文字时返回一个空数组?

c# - 在 C# 中解析 HTML 表格

JavaScript 回顾正则表达式

javascript - 输入字段的样式字体(Angularjs)

javascript - Chrome 上的 Jquery Form.submit() 有效但在 Firefox 中无效