【发布时间】:2010-04-04 18:23:26
【问题描述】:
我正在创建一个 Ruby On Rails 网站,一方面它需要是动态的,以便(某种)受信任的用户可以使网站的某些部分以不同的方式工作。为此,我需要一种脚本语言。在 ASP.Net 中的一个类似项目中,我编写了自己的脚本语言/DSL。不过,我不能使用那个源代码(在工作中编写),如果不需要的话,我也不想制作另一种脚本语言。
那么,我有什么选择?脚本必须被锁定并且不能使我的服务器或任何东西崩溃。如果我可以使用 Ruby 作为脚本语言,我真的很高兴,但这并不是绝对必要的。此外,几乎每个网站请求都会调用此脚本部分,有时不止一次。所以,速度是一个因素。
我查看了 RubyLuaBridge,但它处于 Alpha 状态,似乎已经死了。
在 Ruby 项目中我有哪些脚本语言选择?
此外,我将完全控制该项目的部署位置(root 访问权限),因此没有真正的限制..
【问题讨论】:
-
脚本引擎到底应该具备什么能力?
-
它只需要不太神秘(假设初学者或非程序员都可以使用)并且需要图灵完备。它必须能够与我的 Ruby 程序交互,以便获取数据以执行某些计算和确定。此外,它必须可以与商业项目链接,因此没有 GPL,但我希望它是开源的。
-
您始终可以使用
eval,具体取决于您对用户的信任程度:) -
@DR(顺便说一句,2 个字母的名字没有收到通知)我不太相信他们是问题所在。即使我这样做了,我仍然不会相信在实时服务器上带有 eval 提示的初学者程序员。
标签: ruby security scripting extensibility sandbox