Скажите, что кто-то (зло) установил нам таймер с setInterval
, но мы не знаем его идентификатор (у нас нет ссылки на объект, который возвращает setInterval или его значение)
(function(){
setInterval(function(){console.log('pwned')},
10000)
})();
Есть ли способ, как его очистить? Можно ли использовать таймер другим способом? Или, по крайней мере, в частности браузер /javascript engine?
Дэвид Флэнаган затрагивает подобную тему своим большим JSTDG.
setInterval() method, use in malicious code
введите в индексные точки значение
... Некоторые браузеры обнаруживают повторяющиеся диалоговые окна и длинные сценарии и дают пользователю возможность их остановить. Но вредоносный код может использовать такие методы, как setInterval(), чтобы загружать CPU и также атаковать вашу систему, выделяя много памяти. Там есть нет общего способа, которым веб-браузеры могут предотвратить такую хамскую атаку. В практика, это не является общей проблемой в Сети, так как никто не возвращается на сайт, который участвует в этом злоупотреблении скриптами!