Sfondo
Una nuova pagina di spam ha iniziato a comparire in molti siti "discutibili" (siti di film, ecc.). Questa nuova pagina spam si inserisce nella categoria delle scansioni finte, MacKeeper, "YOU HAVE A VIRUS", ecc. Categoria.
Problema
Il problema con questa nuova pagina è che invece di avere solo un popup, la pagina avvia effettivamente il download di un file casuale 2kb (non dannoso contiene solo testo casuale) ripetutamente ogni ~ 1ms. La cartella di download si riempie prima che tu possa chiudere la finestra e ti rimane la possibilità di cancellare più di 1000 file. A differenza di, un problema simile in cui una pagina spam visualizza la finestra di dialogo di stampa, c'è pochissimo tempo per reagire.
Tentativi di risoluzione dei problemi falliti
-
Ho provato a bloccare la cartella di download. Mentre impediva il download da ... beh ... scaricandolo, viene visualizzata una finestra di dialogo (vedi immagine). Solitamente, potrei semplicemente chiudere questa finestra di dialogo, ma poiché il download è tentato ogni ~ 1 ms, viene visualizzata una nuova finestra di dialogo ogni volta che provo a chiudermi, impedendomi di chiudere la finestra.
-
Forza la chiusura di Safari, che interrompe il download (dopo i download di 1k) ma poi perdo tutte le altre finestre
-
Modifica delle impostazioni su "Chiedi per ogni download" nelle preferenze di Safari. Non funziona perché 1k di finestre di dialogo separate mi impediscono di chiudere anche la scheda. Eventualmente crash di Safari.
Domanda
ComepossoimpedireildownloaddispaminSafari?
UPDATE:
Eccoilcodicechecausaildownload(ottenutodisabilitandoJavaScriptecontrollandomanualmenteilcodice):
functiondownload(g,h,j){vark=newBlob([g],{type:j});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(k,h);else{varl=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: ho riscontrato alcuni problemi durante l'esecuzione di JS su una pagina personalizzata. Si è bloccato invece di scaricato. Sono stato in grado di emulare il download utilizzando una funzione setInterval()
che chiama una funzione download
.
Maggiori informazioni: link