神秘的 12 行代码
这 12 行代码, 是我在其他网站上看到的. 现在拿过来分享.
如果你使用上述这段 12 行的 Java 代码, 就可以能让 http://www.yidianzixun.com/channel/w/firefox , http://www.yidianzixun.com/channel/w/chrome ,Safari 浏览器崩溃, 而且还能让 iPhone 重启, 安卓手机闪退!
起初我并不相信, 现在浏览器都会进行检测屏蔽等等操作, 于是继续在推特上深挖, 发现另一小哥 IT Security Tweets 也发过类似的推文:
依旧是这段代码
完整 html 代码如下:
- <>
- var http://www.yidianzixun.com/channel/w/total ="";
- for (var i=0;i<1000000;i++)
- {
- total= total+i.toString;
- history.pushState(0,0,total);
- }
下面来个刺激的!!!
注意: 如果你电脑或者手机 low, 千万不要点开!!!
注意: 如果你电脑或者手机 low, 千万不要点开!!!
注意: 如果你电脑或者手机 low, 千万不要点开!!!
重要的事情说三遍
如果光用说的你可能不信滴
所以再此附上 demo 感 (shou) 兴( http://www.yidianzixun.com/channel/w/jian )趣的可以试一试:
www.laosiji8.NET / 谁点谁怀孕. HTML
(注意: 请保存浏览器正在运行的编辑内容或任务!)
点开后会发生什么? 反正我的第一反应是这样的:
简直瞎了我的眼!
如果你是 PC 端用户, 点开链接以后, 电脑 CPU 内存极有可能一路狂飙直至浏览器崩溃卡死...
如果你是移动端 (安卓, iPhone) 用户, 点开链接以后你的浏览器会闪退! 在微博, 微信点开链接也同样会闪退.
下面说一下上面代码的原理: history.pushstate 是 HTML5 http://www.yidianzixun.com/channel/w/html5 引入的 API,pushState 将指定的 URL 添加到浏览器历史里, 存储当前历史记录点. 当 i<100000 的时候会循环的将 http://www.yidianzixun.com/channel/w/total 记录到浏览器历史里面, 重复多了, 浏览器就承受不住了, 自然就崩了.
如果有正在学 web 前端的小伙伴, 可来我们的学习扣 qun 哦: 86772,6593 里面免费送视频教程. 小编也是一名从事了 5 年 Web 前端开发的工程师, 花了近一个月整理了一份较适合 18 年学习的干货, 以及我这五年的工作经验, 分享给每一位想学 Web 前端的小伙伴, 这里是 Web 前端学习者聚集地, 欢迎初学和进阶中的小伙伴.
来源: http://www.jianshu.com/p/4145c4818348