2016.01.26 11:00

不要瀏覽這個連結:光靠短短的12行程式碼,可以讓你的瀏覽器當掉、iPhone重啟

ADVERTISEMENT

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

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

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

ADVERTISEMENT

 

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

ADVERTISEMENT

 

程式碼的內容如下:

<html>

<body>

<script>

var total="";

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

{
    total= total+i.toString ();

    history.pushState (0,0,total);

}

</script>

</body>

</html>

 

ADVERTISEMENT

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

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

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

ADVERTISEMENT

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

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

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

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

 

資料來源:、

ADVERTISEMENT