一个新的拒绝服务( DoS )漏洞已被发现,影响所有版本的Ruby 1.8.x :
转换BigDecima对象到Float数时出现了问题,使攻击者能够有效地产生段故障。
ActiveRecord依赖于这种方法,因此大多数Rails的应用受到此问题的影响。虽然这不是一个Rails的特殊问题。
Riding Rails博客还指出这一脆弱性:
即将发布的Rails的2.3.3版本将包括一些细微的变化,以减少一些潜在的攻击者利用此漏洞。不过,这些缓解措施也不能解决每一个潜在的攻击方法,用户仍应尽快升级他们的Ruby版本。
该博客还提到NZKoz 的 bigdecimal - segfault修复方案,给那些不能立即升级他们的Ruby安装版本的用户的一个临时的解决方案-虽然升级是 唯一 正确的解决方案 , 但此修复程序可能中断应用服务。
所有的Ruby 1.8.x 版本都受此 影响 - 第一次修复版本 的Ruby是 { ( 1.8.6 FTP下载链接) 和 Ruby 1.8.7 - p173 ( 1.8.7 FTP下载链接) 。
JRuby 似乎也受到影响。Bug JRUBY-3744跟踪了这个问题,并说:
JRuby似乎受到影响。它没有崩溃,但似乎是停留在一个无限循环。
这一行为已由本示例输出文档化 。
快速试验表明 , 该解决方案中使用bigdecimal - segfault修复工程作为一个 临时的 解决办法,在JRuby也可以工作 ,因为它只是打开了BigDecimal类和修改它以在使用了一个过大的数字的情况下抛出一个异常。以使代码立即失败,而不是保持JRuby线程繁忙;显然这种方法中断了那些需要处理大于补丁设定的默认数字的代码。
Ruby1.9.x用户不会受到这一问题的影响。
=====
以上内容由google翻译辅助工具(http://translate.google.com/toolkit/)翻译。
分享到:
相关推荐
javascript的数值精确计算类bigdecimal,改编自java的bigdecimal
BigDecimal工具类.docx
BigDecimal类,常用方法是用介绍
BigDecimal的计算
java丢失精度,bigdecimal加减乘除
alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...
Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...
BigDecimal向Double转换
复杂的BigDecimal计算,需要开方的式子,可输入结果精确位数
js中引入BigDecimal-all-last.min.js
在一些需求中,我们可能需要将 BigDecimal 值转换为 Integer 类型。这时,可以使用 BigDecimal 的 intValue() 方法进行转换。 当 BigDecimal 值小于或等于 Integer.MAX_VALUE(2^31-1)时,intValue() 方法返回 ...
bigdecimal转integer
bigdecimal加减乘除运算
string转bigdecimal类型
BigDecimal b1=new BigDecimal("1.0"); BigDecimal b2=new BigDecimal("1.00"); boolean t=b1.equals(b2); 怎么样,你认为t是true还是false?它还真是false。BigDecimal的大小比较,1.0与1.00是不相等的,得采用...
BigInteger.java BigDecimal.java 文件 源代码
Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE...
MyEditTextApplication输入框BigDecimal计算价格,实时输入计算价格并保留小数点后十位数字
BigDecimal运算封装,里面封装了Integer和BigDecimal的"加减乘除法运算封装
BigDecimal类型使用