Come puoi evitare che gli indirizzi e-mail vengano raccolti da un modulo di registrazione?

11

Quando accedi al modulo di accesso di un sito web e inserisci le credenziali errate, il sito web può darti uno dei tre messaggi di errore:

  1. La tua email è sbagliata

  2. La tua password è sbagliata

  3. La tua email o è sbagliata

Ho leggi che la pratica più sicura è quella di mostrare solo il terzo messaggio di errore, perché impedisce agli utenti malintenzionati di utilizzare il modulo di accesso per scoprire quali e-mail sono già nel tuo database. Se sono in grado di apprendere tali informazioni su larga scala, possono vendere gli indirizzi email agli spammer o provare ad accedere come tali utenti.

Oltre al modulo di accesso, ci sono altri due modi comuni per scoprire email valide.

Il modulo per la password dimenticata su un sito web ti consente di inserire la tua email e di avere un link per la reimpostazione della password inviato al tuo indirizzo email. Se inserisci una email inesistente nel modulo, il sito web può darti uno dei due messaggi:

  1. quell'email non esiste

  2. Un link di reimpostazione password è stato inviato al tuo indirizzo email, se esiste

Per lo stesso motivo, la migliore procedura di sicurezza qui è mostrare solo il secondo messaggio, anche se quell'e-mail non esiste.

Il modulo di registrazione dell'account utente ti consente di creare un nuovo account sul sito web. Ti richiede di inserire diverse informazioni, come un indirizzo email e una password.

Se provi a registrarti con un indirizzo email già utilizzato da un altro account, il sito web può dirti che l'indirizzo email è già in uso.

Molti siti web di grandi dimensioni, tra cui Stack Exchange , funzionano in questo modo, anche se causano lo stesso problemi elencati sopra.

Ecco le mie domande , che sono entrambe correlate a quel problema:

  1. In che modo un sito Web consente agli utenti di registrarsi senza perdere gli indirizzi email degli altri utenti?

  2. C'è qualche vantaggio nel gestire correttamente i moduli di login e i moduli di password dimenticati se il modulo di registrazione presenta questo problema? In altre parole, se è già possibile ottenere gli indirizzi e-mail di tutti dal modulo di registrazione, le protezioni delle altre due forme non rappresentano un fastidio inutile per gli utenti finali?

posta Pikamander2 06.02.2016 - 02:27
fonte

3 risposte

9

Lo scenario di raccolta delle email che descrivi è molto lento e non è probabile che accada , almeno come metodo per raccogliere molti indirizzi email. L'attaccante avrebbe bisogno di forza bruta per stringhe davvero lunghe contro la tua forma. Come già affermato da symbbean, le email sono già molto economiche se le comprate ed è piuttosto facile bloccare tali tentativi se qualcuno cerca di utilizzare questo modulo ripetutamente.

Il modo standard di raccolta delle email è utilizzando strumenti come theharvester per raccogliere rapidamente tutti i messaggi associati a un dominio (ad esempio un società).

In caso di reset della password , hai già risposto tu stesso a una parte della tua domanda, dovresti sempre restituire un feedback neutro e, se lo desideri, implementare un meccanismo di blocco che blocca un IP dopo troppi tentativi di registrati / ripristinati.

Se qualcuno vuole registrarsi , puoi:

  • prima chiedi la sua mail di registrazione
  • quindi invia un link di registrazione alla mail
  • l'ulteriore processo di registrazione continuerà quindi dal link

In questo modo non è possibile indovinare se un'e-mail è già registrata.

    
risposta data 06.02.2016 - 14:29
fonte
1

AdHominem ha ragione; utilizzando la verifica della posta elettronica si impedisce questo vettore di attacco. È una sfida di usabilità, però. Penso che per molti siti il modo giusto (ma ingombrante) di farlo sia il seguente:

  1. Consenti all'utente di completare l'intera procedura di registrazione e iniziare a utilizzare il sito con un account temporaneo con privilegi ridotti. Probabilmente dovresti impedire loro di intraprendere qualsiasi azione che sia pubblicamente associata all'account (ad es. Postare su un forum).
  2. Se l'indirizzo di posta elettronica era nuovo, invia un'email che consente loro di verificare l'account e collegarlo a quell'email.
  3. Se l'indirizzo e-mail è già stato registrato, invia loro un link di promemoria / reimpostazione della password e comunica loro di seguirlo se è necessario accedere al proprio account esistente.

Questo può essere complicato, specialmente se si consente all'account temporaneo di eseguire qualsiasi azione che l'utente potrebbe voler ri-assegnare al proprio account esistente una volta che lo hanno sbloccato. Il modo più semplice sarebbe quello di impedire all'utente di fare qualsiasi cosa prima di verificare il proprio indirizzo email. Ma sospetto che costringerli a passare al loro client di posta e possibilmente aspettare diversi minuti riduca i tassi di registrazione, motivo per cui molti siti richiedono ripetutamente, ma non richiedono, la verifica via email.

Un'altra possibilità è che se qualcuno si iscrive con un indirizzo email attualmente esistente:

  1. Crea il loro account e mostralo come utilizzando l'indirizzo email richiesto, ma in realtà non collegarlo a quell'indirizzo (ad esempio, non utilizzarlo per reimpostazioni di password o annunci di posta elettronica). Un utente malintenzionato non sarà in grado di dire la differenza, perché non può controllare l'indirizzo.
  2. Invia per email quell'indirizzo con le istruzioni per reimpostare la password sul loro account esistente e farle sapere le conseguenze di avere un account duplicato che non può ricevere email.
  3. Non fare mai nulla al riguardo.

Questi scenari presuppongono che tu stia utilizzando solo e-mail per il contatto tra l'amministratore del sito e l'utente. Se li stai utilizzando per un altro scopo, come l'applicazione di univocità o la visualizzazione di un indirizzo email verificato ad altri utenti del sito, allora devi seguire un approccio di verifica della posta elettronica.

    
risposta data 06.02.2016 - 18:05
fonte
0

Potremmo semplicemente usare un nome utente nel modulo di login senza perdere l'e-mail registrata e inviare un avviso agli utenti nel caso in cui ci sia un tentativo di accesso fallito al loro account per avvertire che c'è qualcuno che vuole connettersi ...

Fornire tali informazioni / indizi renderà la forza bruta più semplice per un utente malintenzionato, ad esempio se fornisco a un sito Web (lo troverai per wordpress) l'amministratore di accesso e una password arbitraria mi risponderà con "la password è errato "così ho potuto lanciare un attacco di forza bruta per l'account admin ....

Un'altra soluzione che potresti chiedere per modificare l'email nel modulo di registrazione senza dare il vero motivo come fa Google. Molti nomi utente di esempio alice.bob anche se non esiste o non sono registrati, ciò non significa che sia stato preso da Mme Alice.Bob (molte volte chiedo un nome utente per gmail e Google show il messaggio che non è disponibile e propone qualcosa come username1253 e se controlli inviando email o G + non li troverai)

    
risposta data 06.02.2016 - 13:09
fonte

Leggi altre domande sui tag