`
crazycode
  • 浏览: 153557 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

BigDecimal中的DoS攻击漏洞

阅读更多
一个新的拒绝服务( 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/)翻译。
分享到:
评论

相关推荐

    BigDecimal类

    BigDecimal 类是 Java 中的一种数值类型,主要用于处理超过 16 位有效数字的数值运算。该类提供了多种构造器和方法,用于创建和操作 BigDecimal 对象。 构造器 BigDecimal 类提供了四种构造器,用于创建不同的 ...

    javascript版BigDecimal类库

    为了解决这个问题,开发者们引入了`BigDecimal`类库的概念,它在Java中被广泛使用,用于进行高精度的算术运算。本文将详细介绍JavaScript版的`BigDecimal`类库,以及如何在JavaScript环境中实现精确计算。 ...

    BigDecimal工具类.docx

    BigDecimal工具类是Java中用于高精确处理常用数学运算的工具类。该工具类提供了多种精确的数学运算方法,包括加法、减法、乘法和除法等。 在BigDecimal工具类中,我们可以看到多个重载的方法,例如add方法和sub方法...

    BigDecimal.js.zip

    在实际应用中,BigDecimal.js可以用于电商系统的订单总价计算、金融应用的汇率转换、科学计算等场景,确保计算结果的精确性。 总之,BigDecimal.js是一个强大的JavaScript库,专门用于处理大数的高精度计算,通过...

    bigdecimal

    ### Java中的BigDecimal类详解 在Java编程语言中,当我们处理涉及货币、财务或者任何需要高精度计算的场景时,`BigDecimal` 类是非常重要的工具之一。本文将深入探讨 `BigDecimal` 类的基本概念、特点以及如何使用...

    BigDecimal向Double转换

    在Java编程语言中,BigDecimal是一种用于处理高精度数值的数据类型,尤其适用于金融计算等领域,因为它可以提供不受限的小数位数精度以及精确的数学运算能力。然而,在某些情况下,我们可能需要将BigDecimal类型的值...

    java中BigDecimal的操作方法

    在Java编程语言中,BigDecimal是用于处理高精度和可配置精度的十进制数的类。在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文...

    bigdecimal转integer.docx

    在 Java 编程中,`BigDecimal` 和 `Integer` 是两个不同类型的数值表示。`BigDecimal` 用于处理精确的浮点数运算,适合财务或金融计算,因为它可以避免浮点数计算中的精度问题。而 `Integer` 是 Java 中的整数类型,...

    BigDecimal的计算

    在Java中,`BigDecimal` 类提供了对超过16位有效数字的十进制数进行精确算术运算的能力。它适用于金融计算、科学计算等场景,在这些场景中,使用浮点数(如 `float` 和 `double`)可能会因为精度丢失而导致错误的...

    MyEditTextApplication输入框BigDecimal计算价格

    BigDecimal是Java提供的一个大数类,它可以用来进行精确的浮点数运算,避免了传统浮点数运算中可能出现的精度损失问题。在金融或会计系统中,对数据的精度要求很高,BigDecimal就成为首选的数据类型。 在...

    JS的高精度计算(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"))); // / ...

    BigDecimal-CPP-master.zip

    标题中的"BigDecimal-CPP-master.zip"表明这是一个与BigDecimal类实现相关的C++项目压缩包。BigDecimal是一种可以处理任意精度的十进制浮点数的数据类型,它通常用于金融或会计等需要高精度计算的领域,因为在这些...

    BigDecimal加减乘除计算

    BigDecimal 类在 Java 中被设计用来处理高精度的浮点数运算,主要应用于财务、金融等领域,因为这些场景中对精度要求非常高。BigDecimal 提供了加法(add())、减法(subtract())、乘法(multiply())和除法...

    java BigDecimal操作

    在Java编程语言中,BigDecimal类是用于处理高精度、大范围浮点数的工具,它在需要精确计算的场景下非常关键。BigDecimal提供了避免浮点数运算中的精度损失的方法,适用于金融、会计等对精度有严格要求的领域。这篇...

    BigDecimal使用

    BigDecimal 使用 BigDecimal 是 Java 中一个用于处理金融和商业应用的类,其主要功能是提供高精度的数字计算。下面是关于 BigDecimal 的使用方法和注意事项: 1. 导包:在使用 BigDecimal 之前,需要导入 java....

    BigDecimal 加减乘除运算

    Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...

    BigDecimal开n次方根

    复杂的BigDecimal计算,需要开方的式子,可输入结果精确位数

    js_bigdecimal_1_0_1.zip

    因此,"js_bigdecimal_1_0_1"库可能是将Java的BigDecimal概念移植到了JavaScript中,以便在Web开发中进行高精度计算。 这个库可能包含以下功能: 1. **大数加减乘除**:支持两个大数之间的加法、减法、乘法和除法...

    关于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是不相等的,得采用...

    java-BigInteger-BigDecimal类源码

    在Java编程语言中,`BigInteger`和`BigDecimal`是两个重要的类,它们分别用于处理大整数和高精度浮点数。这两个类位于`java.math`包下,为开发者提供了超越基本数据类型(如int、long和double)的计算能力。在深入...

Global site tag (gtag.js) - Google Analytics