相關文章

738d287fa363ce16bf28459363e1a558 最近,國外的Twitter網友開始流傳了一段傳聞,據說只要用12行的Javascript程式碼,就可以把瀏覽器搞到崩潰,如果在iPhone上使用的話,還可以把iPhone也搞到當掉重啟。真有這麼神奇嗎?

在上週,一些與安全相關的Twitter帳號,都發表了類似的推文。

「把你的Firefox、Chrome、Safari瀏覽器搞掛,還能讓iPhone重啟,只靠這幾行Javascript程式碼。」

 

搞掛你朋友的瀏覽器、重啟iPhone,只要靠這行程式碼的連結。

 

程式碼的內容如下:

<html>

<body>

<script>

var total="";

for (var i=0;i<1000000;i++)

{
    total= total+i.toString ();

    history.pushState (0,0,total);

}

</script>

</body>

</html>

 

據說如果執行了這個Javascript,在瀏覽器上使用的話,記憶體使用率會一直狂飆,導致瀏覽器崩潰。而如果是iPhone上用Safari,則會導致iPhone 重啟。

根據網友的解讀,表示造成這樣的主要原因是,在這個程式碼中,「history.pushstate()」是HTML5引入的API,其中pushState是用來將指定的URL添加到瀏覽器歷史裡,儲存歷史紀錄。但是這個指令是被包在i迴圈裡頭,這個迴圈會重複不斷的將指定的URL一直加到歷史紀錄裡,而迴圈重複了10萬次。

如果你真的很想嘗試看看,那麼國外已經有人架好一個網站,等著考驗你的瀏覽器以及手機,連結在此

根據國外媒體嘗試表示,包括在它們執行iOS 9.2.1的iPhone 6s、iPhone 5s以及執行iOS 9.2的iPhone 6上面全都無一倖免。換句話說,只要是使用最新的iPhone的版本,連結到這個網站都有風險。

iphone-fire

如果連結到這個網站,它會花一段時間載入,然後Safari將會崩潰,或是強制重啟你的iPhone,將你送回到主頁面或是其它的畫面,依照你的設定不同而定。你的手機可能會損失一些頁籤記錄,不過除此之外並沒有任何風險。

不過,我們試過在PC的瀏覽器上點選這個網頁,不過就僅僅只是載入太久沒有回應而已,把這個頁面關掉也就好了,倒是沒有發生所謂崩潰的現象。

追根究底,其實所謂的「當掉」,主要的原理就是這個Javascript會一直強迫讓瀏覽器去儲存紀錄,由於一直反覆這個動作,導致瀏覽器失去了回應。

 

資料來源:9to5machuffingtonpost

使用 Facebook 留言

Shinwill
2.  Shinwill (發表於 2016年1月28日 14:52)
不需要用到這種惡意程式碼
貴站大量的 JavaScript 就已經把我的瀏覽器弄掛了

你們可以繼續依然故我沒關係

發表回應

謹慎發言,尊重彼此。按此展開留言規則