欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

神秘12行javascript代码:让Firefox等浏览器崩溃 iphone秒重启

程序员文章站 2023-11-16 19:36:46
神秘12行javascript代码:让Firefox等浏览器崩溃 iphone秒重启...

最近,一段神秘的12行代码在国外社交网络上火了起来,据说能让你的浏览器瞬间崩溃,iphone秒重启。到底是什么代码这么神奇?

上周,国外网友cyber security@cyber__sec在twitter上发布了这样一段推文

神秘12行javascript代码:让Firefox等浏览器崩溃 iphone秒重启

使用下面这段javascript代码,能让firefox、chrome、safari浏览器崩溃,还能让iphone重启”。

事实上,更早的时候,it security tweets ™ @f1r3h4nd也发布类似的内容:

神秘12行javascript代码:让Firefox等浏览器崩溃 iphone秒重启

“把下面这个脚本链接发送给你的朋友,搞瘫他的浏览器,让他的iphone重启。”

喏,就是下面这段代码:

<html>

<body>

<script>

var total="";

for (var i=0;i<1000000;i++)

{
    total= total+i.tostring ();

    history.pushstate (0,0,total);

}

</script>

</body>

</html>

还有人专门做成了链接:http://www.0xroot.cn/demo.html(不怕死的可以试试,请提前保存好浏览器内容

网友验证,如果是pc用户,内存使用率一路狂飙,浏览器会瞬间卡死;如果是手机用户,点开链接浏览器会闪退,而微博、微信内打开链接同样会闪退。如果是iphone用户使用safari打开之后链接,手机重启。

为什么会这样呢?

有知乎网友给出这样的解答

“history.pushstate()是html5引入的api,pushstate将指定的url添加到浏览器历史里,存储当前历史记录点。 当 i<100000 的时候会循环的将 total记录到浏览器历史里面,重复多了,浏览器就承受不住了,自然就崩了。”

简直瞎了我的眼!

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

如果你是移动端(安卓、iphone)用户,点开链接以后你的浏览器会闪退!在微博、微信点开链接也同样会闪退。

为什么会发生此现象呢?对此我在知乎上找到了一位名为“小米”的大神解答:

history.pushstate()是html5引入的api,pushstate将指定的url添加到浏览器历史里,存储当前历史记录点。 当 i<100000 的时候会循环的将 total记录到浏览器历史里面,重复多了,浏览器就承受不住了,自然就崩了。

好吧,反正对于连“hello world”都不会编的我,是一点也看不明白...总之牛气炫酷吊炸天就对了!