有一个简单的方法来完全锁定很多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(TM)2运行环境标准版(build 1.5.0_10-b03)
Java HotSpot(TM)服务器虚拟机(构建1.5.0_10-b03,混合模式)
java版本“1.6.0_17”
Java(TM)SE运行时环境(build 1.6.0_17-b04)
Java HotSpot(TM)服务器虚拟机(构建14.3-b01,混合模式)