0
A
回答
1
注:作为@themarketka指出,像Ruby 2.2.2的,信任已被弃用,并取得相当的污点。
这个差别很奇怪,没有特别好记录。
注意:在$ SAFE级别0,这些标记都没有做任何事情。
Tainting
污染的概念是对象是否来自可信来源。从标准输入输入的字符串被污染,但刚分配的字符串不是。在更高的安全级别上,禁止对受到污染的数据进行各种潜在的危险操作(抛出SecurityException
)。操作像eval
,system
等。此外,污点,可以从所谓的“子”对象继承:(不执行)
2.0.0p0 :001 > s = "Hi!"
=> "Hi!"
2.0.0p0 :002 > s.taint
=> "Hi!"
2.0.0p0 :003 > (s + "World").tainted?
=> true
所以,如果我这样做system("rm -rf #{gets.chomp}")
在较高的安全水平,Ruby会抱怨,因为我的未经处理的字符串("rm -rf #{...}"
)和受污染的字符串(gets.chomp
)的组合会创建一个受污染的字符串。
信任
信任是,不像tainting,适用于代码和对象。所有正在运行的代码都是可信的或不可信的,并且所有对象都是可信的或不可信的。不可信的代码只能修改不可信的对象。不可信的代码只能创建不可信的对象。以安全级别0-2创建的代码和对象是可信的,但以$ SAFE级别3或4运行或创建的任何内容都不可信,并且只能修改不可信对象。
差异
污点和信任之间的差别是很微妙的。 Tainting全是关于什么操作您可以对数据进行操作,但信任关于您可以访问哪些数据访问。他们保护系统的不同部分。此外,虽然污点总是存在,并且污染对象可以在任何安全级别存在,但只有在所谓的“沙箱”$ SAFE级别3和4中才会发挥作用,这些级别几乎专用于沙盒外部代码。
相关问题
- 1. WeakReference <object>和object = null之间是否有任何显着差异?
- 2. 无法解析HttpXsrfCookieExtractor的所有参数:(?,[object Object],[object Object])
- 3. [Object,Object]和Array之间的区别(2)
- 4. Angular 2/4 - 无法解析GameEditComponent的所有参数:([object Object],[object Object],?)
- 5. C++中object和object()之间的区别是什么
- 6. TypeError Object [object object]没有方法SubSelf,TypeError Object [object object]没有方法intersectsPlane
- 7. Objects.hashCode()和new Object()。hashCode()之间的区别?
- 8. object.variable和object-> variable之间的区别
- 9. 什么是Ruby中的Object :: private和Object :: public?
- 10. 无法用jQuery解析JSON,返回[object Object]
- 11. why({} + {})=“[object Object] [object Object]”?
- 12. 如何在javascript中将[object Object],[object Object]转换为[Object,Object]?
- 13. 解释querySelectorAll和$$之间的差异
- 14. Object()和Object {}的区别{}
- 15. 术语之间的任何差异解析树和派生树?
- 16. Object Array无法解析为类型
- 17. Task.WhenAll()和foreach(任务中的var任务)之间的差异
- 18. Chrome控制台中'[Object]'和'[object Object]'的区别?
- 19. jQuery.getJSON和jQuery.parseJSON返回[object Object]?
- 20. 两个日期之间的Ruby差异
- 21. Ruby虚拟机之间的差异
- 22. 成员和方法之间的差异
- 23. VBA:&和+之间的差异
- 24. 之间的差异和::: ++
- 25. 无法找到类型为'object'的不同支持对象'[object Object]'
- 26. Angular2 rc1 ngFor“无法找到类型为'object'的不同支持对象'[object Object]'
- 27. 无法理解ps | wc输出差异
- 28. AgularJS无法找到类型为'object'的不同支持对象'[object Object]'并解析查询
- 29. 设置object = nil和[object release] vs [object release]和object = nil有什么区别?
- 30. ForEach-Object:无法转换'System.Object []'
两年后,[2.2.2的Ruby文档](http://ruby-doc.org/core-2.2.2/Object.html#method-i-untrusted-3F)声明'trust '方法被_deprecated_和等同于他们的'异味'对应物。 – themarketka 2015-08-09 09:56:34