我有一个 Ruby on Rails 应用程序,我需要向数据库添加一些任意“函数”。这些函数需要接收预定义的参数,执行任意逻辑和算术,并返回一个数字或一个字符串。
我的第一个想法是将代码添加到数据库并使用eval(code)
,但我很快意识到这样做的安全问题。我找不到真正沙盒的方式eval
。
我还考虑过使用JavaScript 解释器,例如,将代码放在 JS 中并在它自己的上下文中运行它,但它似乎仍然有点太多并且不够安全。
有没有办法从字符串对一些变量执行简单的任意逻辑和算术并返回一个值?