我们正在研究与Tropo有类似要求的产品(请参阅https://github.com/tropo/tropo-samples/tree/master/ruby),其中允许用户编写一个ruby脚本,该脚本可以访问传入的一些函数和变量。但是,我们希望避免用户访问全局呼叫,删除所有用户或终止程序。有没有办法用eval来实现这一点?有没有一种安全的方式在Ruby中运行eval?
7
A
回答
2
这将取决于你如何实现它,但看看使用绑定与eval。通过创建自己的绑定并将其预加载“安全”对象,可以限制用户可以使用他的代码执行的操作。
0
set $ SAFE parameter?这应该确保你不会评估不可信任的字符串,无论如何...
0
Ruby提供了基于“感染”对象的安全模型。
您可能想要购买check that。无论如何请注意,创建一个DSL比eval更安全(也更有趣!)
相关问题
- 1. 有没有一种安全的方式在.NET 4.0之前在C#中执行指针运算?
- 2. 有没有一种方法来操纵包含JS没有eval()?
- 3. 有没有一种方法在Objective-C中具有类型安全的常量?
- 4. 有没有另一种方法来创建一个更安全的形式Django
- 5. 有没有一种优雅的方式在Ruby中做到这一点?
- 6. 有没有一种方法来缩小CSS没有它全部在一行?
- 7. 有没有一种安全的方式来迭代std :: unique_ptr <int[]>?
- 8. 有没有一种安全的方式来发送变量从PHP到闪存
- 9. php __autoload()和动态/运行时类定义 - 有没有一种方法没有eval?
- 10. 有没有一种标准的方式让Perl在内存不足时运行?
- 11. 有没有一种方法可以完全格式化C#double?
- 12. 有没有一种安全的编程方式来确定打开Swing窗口是否安全?
- 13. 有没有一种安全的方式来执行C++中的用户/客户端代码?
- 14. 我可以在没有eval的全局执行上下文中运行javascript
- 15. 有没有一种方法可以避免在这个JavaScript块中使用eval?
- 16. 在运行时C++中有没有一种有效的方法来检索函数的全部签名?
- 17. 执行没有eval的jquery方法
- 18. 有没有一种通用的方式来进行此转换?
- 19. 有没有一种方法可以运行多个IntentService?
- 20. 有没有一种统一的方式来获取内容在Ruby中的文件://或http:// URI方案?
- 21. 有没有一种安全的方式来修改表pg_constraint,以便不再进行检查(临时)?
- 22. 有没有一种方便的方式在knitr中制作热图式桌子?
- 23. 有没有一种通用的方式来完全重置一个angularjs表单?
- 24. 有没有一种安全的方法来建立SQL日期时间?
- 25. 有没有一种安全的方法来设置mysql root密码?
- 26. 有没有一种安全的方法来删除JointJS文件/图
- 27. 有没有一种安全的方法来手动动画滚动UIScrollView?
- 28. 有没有一种用JavaScript验证JSON输入的安全方法?
- 29. 有没有一种“简洁”的方式来在JavaScript中进行命名空间?
- 30. 有没有一种很好的方式在JavaScript中进行颜色循环?
你应该覆盖eval并仅传递可信命令 – apneadiving
可能的重复:http://stackoverflow.com/questions/406833/language-in-a -sandbox式护栏 – fyr