我正在寻找下一个问题的解决方案:现在我正在开发一个 Rails 应用程序。我希望有可能在浏览器中用 Ruby 编写代码,然后在我的 Rails 应用程序中执行该代码。
有现成的解决方案吗?
升级版:
- 代码高亮呢?
- 原生客户端呢?
我正在寻找下一个问题的解决方案:现在我正在开发一个 Rails 应用程序。我希望有可能在浏览器中用 Ruby 编写代码,然后在我的 Rails 应用程序中执行该代码。
有现成的解决方案吗?
升级版:
https://github.com/codegram/rack-webconsole
或者您可以简单地将 Ruby 代码通过 post 传递到服务器并调用eval eval(CODE)
。
您应该注意,尤其是第二种方式非常不安全,因为它使执行代码可以完全访问您的系统。
如果真的必须这样做,“将 Ruby 锁定在保险箱中”可以帮助保护它。
编辑:
对于语法高亮,请查看Code Mirror和ACE。两者都是不错的源代码编辑器,支持 ruby。
eval
就是你要找的。用户输入 Ruby 代码,该代码将发布到您的 rails 应用程序。在您的控制器中,您将需要评估提交的 Ruby 代码。
但。你可能不想要这个。如果确实需要评估和运行用户提交的代码,您很可能需要重新考虑是否需要该功能。这几乎是不可能确保安全的。即使你从某些用户那里保护它,它也可以通过 XSS 被利用;它实际上可以通过此“功能”立即接管服务器。
目前还没有任何实际可部署的解决方案,但您可能会将text/x-ruby视为概念证明。
还有Cloud9 IDE,它用作基于浏览器的 IDE,并将代码持久化回您的服务器以运行。