在$ SAFE = 4的情况下,ruby可能存在哪些漏洞?马上就知道XSRF是可能的,因为攻击与“污染变量”无关,而是http请求源自何处。我知道使用像md5()这样的弱加密算法是不会被选中的。你知道其他人吗?代码示例非常感谢!
答案 0 :(得分:3)
$ SAFE = 4时,可能存在几乎无限的漏洞。什么都不能保护你免受所有可以做代码的任意坏事。例如,如果您不小心,无论什么是$ SAFE模式,您都可以使用数据库中的敏感数据做各种愚蠢的事情 - 对于Web应用程序,这实际上应该比$ SAFE帮助您的事情更加重要。用。 $ SAFE基本上保护您免受一个可能做错的常见事情,同时让所有其他人保持开放状态。请参阅Underhanded C Contest的last year's winner:
这也是一个很好的例子,说明你无法防止意图写错字。代码将经得起任何缓冲区溢出检查,代码样式检查或lint程序。代码是正确的C代码;这个bug没有在代码中引入,但更早的时候,在我构思算法的时候就已经知道了。
答案 1 :(得分:2)
过去,如果你正在执行或评估外部代码,你可以通过执行一些昂贵的原子操作(如计算大功率和将线程设置为关键)来安全级别4进行DOS操作
Thread.new do
Thread.critical = true
9999999999999 ** 999999999999 # DOS!
end