比如,某人(邪)爲我們樹立一個計時器setInterval
,但我們不知道它的ID(我們沒有參考對象,即setInterval不太返回,還是其值)如何清除未知ID的間隔?
(function(){
setInterval(function(){console.log('pwned')},
10000)
})();
有沒有辦法,如何清除它?是否有可能以其他方式訪問計時器?或者至少在瀏覽器/ JavaScript引擎?
大衛弗拉納根接觸類似的話題他的大JSTDG。 setInterval() method, use in malicious code
關鍵索引點
...有些瀏覽器檢測到重複的對話框和長時間運行的腳本,並給用戶 的選項來阻止他們。但是惡意代碼可以使用諸如setInterval()之類的方法來加載CPU,並且也可以通過分配大量內存來攻擊您的系統。網頁瀏覽器沒有一般的方式可以防止這種殘酷的攻擊。在 的做法,這不是在網絡上的常見問題,因爲沒有人返回到一個網站, 從事這種腳本濫用!
相關 - http://stackoverflow.com/questions/3141064/how-to-stop-all-timeouts-and-intervals-using-javascript –
嗯..另一個想法 - 做任何機會,他們給功能名稱? –
影子嚮導,在這種情況下,它不幸被設置在閉包中(這有時被認爲是一個很好的功能,用於安全目的)..我知道,這個問題有點理論上的,因爲我們可能在大多數情況下,在某些瀏覽器中本地編輯惡意代碼 – mykhal