2011-07-14 47 views
7

我们正在研究与Tropo有类似要求的产品(请参阅https://github.com/tropo/tropo-samples/tree/master/ruby),其中允许用户编写一个ruby脚本,该脚本可以访问传入的一些函数和变量。但是,我们希望避免用户访问全局呼叫,删除所有用户或终止程序。有没有办法用eval来实现这一点?有没有一种安全的方式在Ruby中运行eval?

+0

你应该覆盖eval并仅传递可信命令 – apneadiving

+0

可能的重复:http://stackoverflow.com/questions/406833/language-in-a -sandbox式护栏 – fyr

回答

0

set $ SAFE parameter?这应该确保你不会评估不可信任的字符串,无论如何...

0

Ruby提供了基于“感染”对象的安全模型。

您可能想要购买check that。无论如何请注意,创建一个DSL比eval更安全(也更有趣!)

相关问题