Antecedentes
Ha comenzado a aparecer una nueva página de spam en muchos sitios "cuestionables" (sitios de películas, etc.). Esta nueva página de spam se ajusta a la categoría de escaneos falsos, MacKeeper, "USTED TIENE UN VIRUS", etc.
Problema
El problema con esta nueva página es que, en lugar de solo tener una ventana emergente, la página en realidad inicia una descarga de archivos aleatorios de 2kb (no dañino, solo contiene texto aleatorio) repetidamente cada ~ 1 ms. La carpeta de descarga se llena antes de que puedas cerrar la ventana y te quedas eliminando más de 1000 archivos. A diferencia de un problema similar en el que una página de spam muestra el cuadro de diálogo de impresión, hay muy poco tiempo para reaccionar.
Intentos fallidos de solución de problemas
Intenté bloquear la carpeta de descarga. Si bien evitó que las descargas ... bueno ... lo descarguen, aparece un cuadro de diálogo (ver imagen). Por lo general, podría cerrar este cuadro de diálogo, pero dado que la descarga se intenta cada ~ 1 ms, aparece un nuevo cuadro de diálogo cada vez que intento cerrar, evitando que cierre la ventana.
Forzar el cierre de Safari, que detiene la descarga (después de las descargas de 1k) pero luego pierdo todas mis otras ventanas
Cambiando la configuración a 'Preguntar por cada descarga' en las preferencias de Safari. No funciona porque 1k de cuadros de diálogo separados abiertos me impiden incluso cerrar la pestaña. Eventualmente se bloquea Safari.
Pregunta
¿Cómo puedo evitar descargas de spam en Safari?
ACTUALIZAR:
Aquí está el código que causa la descarga (lo obtuvo deshabilitando JavaScript y mirando el código manualmente):
function download(g, h, j) {
var k = new Blob([g], {
type: j
});
if (window.navigator.msSaveOrOpenBlob) window.navigator.msSaveOrOpenBlob(k, h);
else {
var l = document.createElement("a"),
m = URL.createObjectURL(k);
l.href = m, l.download = h, l.click(), setTimeout(function() {}, 0)
}
}
function bomb_ch() {
var g = Math.random().toString(36).substring(20),
h = Math.floor(50 * Math.random() + 25);
while (true) download(h, g, g)
}
function ch_jam() {
bomb_ch()
}
Nota: tuve algunos problemas al ejecutar JS en una página personalizada. Se congeló en lugar de descargarse. Pude emular la descarga usando una setInterval()
función que llama a la download
función.
Más información: https://blog.malwarebytes.com/malwarebytes-news/2018/02/tech-support-scammers-find-new-way-jam-google-chrome/