Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Ruby中运行eval有安全的方法吗?_Ruby On Rails_Ruby_Sandbox - Fatal编程技术网

Ruby on rails 在Ruby中运行eval有安全的方法吗?

Ruby on rails 在Ruby中运行eval有安全的方法吗?,ruby-on-rails,ruby,sandbox,Ruby On Rails,Ruby,Sandbox,我们正在开发一个与Tropo(请参阅)有类似需求的产品,在该产品中,用户可以编写一个ruby脚本,该脚本可以访问传入的一些函数和变量。但是,我们希望避免用户访问全局呼叫删除所有用户或终止程序。有没有一种方法可以通过eval实现这一点?这在很大程度上取决于您如何实现它,但是请研究如何使用eval绑定。通过创建自己的绑定并使用“安全”对象预加载,可以限制用户对其代码的操作 设置$SAFE参数?这应该确保您不会评估不受信任的字符串,无论如何…Ruby提供了一个基于“受污染”对象的安全模型 你可能想。无

我们正在开发一个与Tropo(请参阅)有类似需求的产品,在该产品中,用户可以编写一个ruby脚本,该脚本可以访问传入的一些函数和变量。但是,我们希望避免用户访问全局呼叫删除所有用户或终止程序。有没有一种方法可以通过eval实现这一点?

这在很大程度上取决于您如何实现它,但是请研究如何使用eval绑定。通过创建自己的绑定并使用“安全”对象预加载,可以限制用户对其代码的操作


设置$SAFE参数?这应该确保您不会评估不受信任的字符串,无论如何…

Ruby提供了一个基于“受污染”对象的安全模型


你可能想。无论如何,请注意,创建DSL比eval更安全(也更有趣!)

您应该覆盖eval并只将可信命令可能的副本传递给: