decir que alguien (el mal) nos ha puesto un temporizador con setInterval
, pero no conocemos su identidad (no tenemos la referencia al objeto, que está regresando setInterval, ni su valor)¿Cómo borrarInterval con ID desconocida?
(function(){
setInterval(function(){console.log('pwned')},
10000)
})();
¿Hay alguna manera, cómo borrarlo? ¿Es posible acceder al temporizador de otra manera? ¿O al menos en un navegador/motor de JavaScript en particular?
David Flanagan toca tema su gran JSTDG. setInterval() method, use in malicious code
clave en los puntos de índice a
... Algunos navegadores detect cuadros de diálogo y scripts de larga duración repite y le da al usuario la opción para detenerlos. Pero el código malicioso puede usar métodos como setInterval() para cargar la CPU y también puede atacar su sistema asignando mucha memoria. No es ninguna manera general de que los navegadores web pueden evitar este tipo de ataque de mano dura. En la práctica, esto no es un problema común en la web ya que nadie vuelve a un sitio que se involucra en este tipo de abuso de secuencias de comandos!
Relacionados - http://stackoverflow.com/questions/3141064/how-to-stop-all-timeouts-and-intervals-using-javascript –
Hmm .. otra idea - por casualidad dan a la función una ¿nombre? –
Shadow Wizard, en este caso, desafortunadamente se configuró en el cierre (que a veces se considera una buena característica para usar con fines de seguridad) .. sé que esta pregunta es algo teórica, porque es probable que en la mayoría de los casos podamos encontrar y edite localmente el desagradable código en algunos navegadores – mykhal