电脑崩溃手机重启的html代码
该代码是在某网站上看到的,关键部分为其中的js code中引入的一个函数,为html5中引入的。无论是在pc端或是移动端的浏览器上打开,会进行一个N次循环,最终将硬件资源耗尽。代码如下:
<img src="https://blog.361way.com/wp-content/uploads/2016/01/jscode.png" width="541" height="343" alt="" />
上图为国外的某哥们在推特上的发文内容。我在自己的站点上保存该代码并通过浏览器打开后发现效果如下。主机资源使用率如下:
<img src="https://blog.361way.com/wp-content/uploads/2016/01/wintop.png" width="377" height="201" alt="" />
可以发现CPU立即飙了上去,内存也占用很多。将主机强制关机并开机后,查看浏览器的历史记录如下(这里只取了一小部分,根据js代码中可以看到实际上会写10W条记录,但很可能写不到10W条主机已经跨掉):
<img src="https://blog.361way.com/wp-content/uploads/2016/01/browser-history.png" width="547" height="327" alt="" />
<strong>原理</strong>:history.pushstate()是HTML5引入的API,pushState将指定的URL添加到浏览器历史里,存储当前历史记录点。 当 i<100000 的时候会循环的将 total记录到浏览器历史里面,重复多了,浏览器就承受不住了,自然就崩了。
代码我已放在本站点上,想要尝试下效果的可以点击 <a href="http://dh.361way.com/demo/attack.html" target="_blank" rel="noopener">http://dh.361way.com/demo/attack.html</a> 。
<br />
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/browser-html5-attack/4988.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.