Come proteggersi da jQuery preventDefault phishing?

0

Questo mi turba da un po 'di tempo a causa dei potenziali rischi per la sicurezza che comporta.

Fondamentalmente per caso ho scoperto che questo codice è perfettamente valido e funziona senza problemi:

jQuery:

$(document).ready(function(){
    $("#phishingURL").on("click",function(e){
        e.preventDefault();

        window.location = "https://www.stackoverflow.com";
    });
});

HTML:

<a id="phishingURL" href="https://www.google.com">https://www.google.com</a>

La maggior parte degli utenti di PC normali passa il mouse su un URL per verificare se effettivamente indirizza verso il sito Web che si aspetta. In questo tipo di phishing, puoi vedere l'url che ti aspetti, ma sei ancora reindirizzato su un altro sito web. Ovviamente puoi sempre controllare la barra degli indirizzi, ecc. Ma dato che lavoro molto con le persone anziane, so che cadrà per questo. Quindi c'è un modo per proteggersi da questo oltre a cambiare le tue abitudini?

Modifica: tecnicamente è possibile utilizzare Flash sul sito di pshishing stesso e modificare la barra degli indirizzi del browser con SWFAddress.setValue() , rendendo possibile persino visualizzare la barra degli indirizzi come se fosse sul sito web giusto.

    
posta icecub 10.05.2015 - 03:55
fonte

2 risposte

4

Se questo codice esiste su un sito Web, sarebbe uno dei due motivi:

  1. Il sito Web stesso è dannoso (o è stato compromesso da una persona malintenzionata).
  2. È presente un errore XSS su un sito Web e un utente malintenzionato l'ha iniettato script. ( O una risorsa esterna è stata compromessa con lo stesso effetto.)

Ignora qualsiasi compromissione della macchina / rete del client.

Oltre a questo, questo codice non può essere eseguito su un sito Web diverso da se stesso. La Stessa politica di origine impedirebbe al codice di alterare (ad esempio) un Iframe per modificare i collegamenti di destinazione in questo modo.

Un sito Web legittimo che fa questo di proposito rientrerebbe nella categoria (1) IMO.

L'unico posto in cui questo sarebbe un problema sarebbe all'interno di un messaggio di posta elettronica visualizzato tramite un sistema basato sul web quando un utente desidera verificare i collegamenti. Tuttavia, gli script non devono essere autorizzati a funzionare all'interno di messaggi e-mail HTML. La maggior parte dei buoni fornitori impedisce che ciò accada, eliminando i contenuti non consentiti e implementando una politica di sicurezza dei contenuti.

So is there any way to protect yourself against this besides changing your habits?

Utilizza un gestore password basato su browser . Questo dovrebbe consentire solo di compilare le credenziali su una corrispondenza URL. Se un phisher ti manda altrove, il gestore della password non ti darà la possibilità di compilare il modulo di login in modo che l'utente si renda conto che qualcosa non va.

Edit: Technically it's possible to use Flash on the phishing site itself and change the browser address bar with SWFAddress.setValue(), making it even possible to make the address bar appear as if it's on the right website.

Questo modifica solo il valore hash dell'URL , che è un client interpretato solo sezione dell'URL. Questo non può cambiare il dominio o il percorso nella barra degli indirizzi.

    
risposta data 10.05.2015 - 20:24
fonte
1

Questo non è legato a jQuery. È sempre stato possibile (poichè da Netscape 2) navigare automaticamente l'utente verso una pagina arbitraria, con o senza fornire qualcosa che assomigli ad un link ad altre fonti precedenti.

L'interfaccia utente di destinazione del collegamento (pop-in o barra di stato) è una funzione di comodità che non è mai stata intesa come alcun tipo di misura di sicurezza. Nessuno dovrebbe fidarsi di questo. Anche se fosse affidabile in modo affidabile, uno script potrebbe facilmente cambiare la destinazione del collegamento nel momento critico o spostare un altro link in primo piano.

So is there any way to protect yourself against this besides changing your habits?

Crea un'estensione del browser che apre una finestra di dialogo prima di ogni navigazione per confermare che l'utente intendeva visitare il nuovo indirizzo?

(Questo sarebbe piuttosto orribile da usare, attenzione.)

Technically it's possible to use Flash on the pshishing site itself and change the browser address bar with SWFAddress.setValue(), making it even possible to make the address bar appear as if it's on the right website.

No. SWFAddress scrive la parte dell'hash dell'URL e la Cronologia HTML5 può scrivere la parte del percorso, ma non puoi cambiare l'origine (schema / nomehost / porta).

    
risposta data 10.05.2015 - 18:25
fonte

Leggi altre domande sui tag