共计 731 个字符,预计需要花费 2 分钟才能阅读完成。
最近,一段神秘的 12 行代码在国外社交网络上火了起来,据说能让你的浏览器瞬间崩溃,iPhone 秒重启。到底是什么代码这么神奇?
上周, 国外网友 Cyber Security@cyber__sec 在 Twitter 上发布了这样一段推文 :
“ 使用下面这段 javascript 代码,能让 Firefox、Chrome、Safari 浏览器崩溃,还能让 iPhone 重启 ”。
事实上,更早的时候,IT Security Tweets ™ @F1r3h4nd 也发布类似的内容:
“把下面这个脚本链接发送给你的朋友,搞瘫他的浏览器,让他的 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://down.nmzh.net/sueri/demo.html(不怕死的可以自己试试或发给朋友看看,请提前保存好浏览器内容)
网友验证, 如果是 PC 用户,内存使用率一路狂飙,浏览器会瞬间卡死;如果是手机用户,点开链接浏览器会闪退,而微博、微信内打开链接同样会闪退。如果是 iPhone 用户使用 Safari 打开之后链接,手机重启。
为什么会这样呢?
有知乎网友给出这样的解答 :
“history.pushstate() 是 HTML5 引入的 API,pushState 将指定的 URL 添加到浏览器历史里, 存储当前历史记录点。当 i<100000 的时候会循环的将 total 记录到浏览器历史里面,重复多了,浏览器就承受不住了,自然就崩了。”