Email anziché nome utente

17

Mi chiedo quali siano le implicazioni di sicurezza dell'utilizzo dell'email come identificatore principale tramite il quale un utente accede (con una password associata, ovviamente). Posso trattarlo come se fosse un normale nome utente o dovrei prendere ulteriori precauzioni, come "disinfettare" l'indirizzo email prima di confrontarlo per unicità rimuovendo qualsiasi + parti (ad esempio [email protected])?

L'unica vera conseguenza a cui posso pensare immediatamente è di fare attenzione a non rendere pubblicamente controllabile se nel sistema è stata registrata un'e-mail (ad esempio tramite i controlli delle password non riuscite).

    
posta Gregor Petrin 27.03.2013 - 13:45
fonte

5 risposte

19

L'email di solito è una buona cosa come nome utente perché:

  • l'utente lo ricorda;
  • è univoco in tutto il mondo, semplificando così la gestione delle collisioni (se un utente desidera utilizzare lo stesso nome di accesso di un altro, allora uno di loro ha fatto un errore);
  • può essere abbinato a un sistema di "verifica della posta elettronica" che è comodo se si desidera che il server sia in grado di contattare gli utenti in caso di emergenza.

Nominalmente, almeno la metà destra dell'indirizzo email (il nome del dominio, dopo il segno "@") non fa distinzione tra maiuscole e minuscole, quindi dovresti normalizzare quella parte in lettere minuscole, il che è facile, dal momento che dovrebbe essere un nome di dominio valido, quindi limitato a un sottoinsieme di ASCII (Nota: si vorrà fare attenzione a utilizzare ciò che .NET chiama cultura invariante e termini Java impostazioni locali root ; in caso contrario, il tuo codice verrà interrotto in Turchia).

Per quanto riguarda la sinistra, la distinzione tra maiuscole e minuscole dipende dal sito ricevente. La maggior parte dei siti non fa distinzione tra maiuscole e minuscole anche per quella parte e sembra "ragionevole" eseguire la normalizzazione in lettere minuscole, perché è improbabile che un determinato sito utilizzi entrambi i distinzione tra maiuscole e minuscole. che [email protected] e [email protected] sono entrambi indirizzi validi per due Bob diversi). Quindi, suggerisco la normalizzazione minuscola dell'intero indirizzo per scopi di confronto (cioè per decidere quale utente stiamo parlando); ma mantieni l'indirizzo "così com'è" se vuoi mai inviare una email all'utente, o anche se vuoi mostrarlo all'utente (es. come esempio di benvenuto, Bob @. com "banner - Bob potrebbe essere piuttosto affezionato alla sua" B "maiuscola).

Informazioni sul segno "+": Dal tuo punto di vista, fa parte dell'indirizzo. Questo "+" viene gestito su alcuni siti come un modo per ciascun utente di generare molti indirizzi funzionalmente equivalenti: Bob sarà in grado di utilizzare [email protected] , [email protected] , [email protected] ... tutte le e-mail inviate a qualsiasi questi indirizzi finiscono nella casella di posta di Bob, ma, agli occhi di Bob, sono ancora indirizzi distinti che Bob scrive come tali. Bob si aspetta che gli indirizzi siano considerati distinti. Quindi la tua gestione del "+" dipende da cosa vuoi veramente:

  • Se desideri semplicemente un "nome di accesso" univoco in modo che la gestione delle collisioni sia facile, allora lascia l'indirizzo "così com'è"; non fare nulla di speciale con il "+".
  • Se vuoi forzare l'unicità degli account per utente umano (ovvero non vuoi che Bob sia in grado di creare un milione di account distinti), potresti voler rimuovere i caratteri da "+ "accedi al segno" @ ", di nuovo disponibile per scopi di confronto. Ma non credere che questa regola scoraggerà la maggior parte dei Bob; ottenere milioni di indirizzi email senza "+" è facile ed economico (il modo migliore è comprare un dominio e noleggiare un server per ospitarlo).

Riepilogo: mantiene l'indirizzo inserito al momento della registrazione e lo usa "così com'è" per la visualizzazione e l'invio di e-mail. Per i confronti (ovvero, localizzando la voce utente nella tabella degli utenti, ad esempio dopo l'accesso), normalizza l'email in caratteri minuscoli (con una cultura invariabile).

    
risposta data 27.03.2013 - 14:28
fonte
5

Il rischio principale di usare le e-mail come username è che rinuncia a un mezzo secondario per contattare l'utente. Molti (la maggior parte?) Utenti usano la stessa password per più cose. Se il nome utente e la password sono compromessi e il nome utente è la loro e-mail, anche il loro account e-mail finirà probabilmente per essere compromesso. Ciò può rendere molto difficile il recupero dell'account, a meno che non si utilizzi qualcosa come un sistema di recupero basato su SMS.

    
risposta data 27.03.2013 - 13:51
fonte
3

L'indirizzo email è spesso una brutta cosa come un nome utente (per funzionalità altamente sensibili come i servizi bancari) perché:

  1. Consente a qualcuno che causa l'accesso fraudolento a qualcun altro account (se conosco il tuo indirizzo e-mail e esegui il bonifico con Barclays, posso bloccarti dal tuo account tentando ripetutamente password errate).
  2. Puoi provare combinazioni di nome utente e password compromesse da altri siti sul sito bancario.
  3. Consente di eseguire iterazioni su molti account cercando alcune password comuni su ciascun
  4. Riduce la quantità di informazioni che un utente malintenzionato deve sapere (in pratica l'id utente è un po 'di informazioni che ci si aspetta che annulli o altrimenti registri ma che estende ancora la lunghezza effettiva della password).
  5. Gli indirizzi email possono essere riutilizzati. Non vuoi che qualcuno che viene re-assegnato a un indirizzo email usato sia in grado di effettuare richieste di reimpostazione della password ecc.

Tutto ciò ha bisogno di bilanciare il fatto che un utente sia in grado di ricordare il proprio nome utente. Su molti siti c'è una funzione di invio del mio nome utente collegata a un indirizzo email. Altri hanno già coperto i lati positivi dell'uso dell'email come ID utente.

    
risposta data 05.08.2014 - 17:57
fonte
1

Can I treat it as I would a normal username or should extra precautions be taken, like 'sanitizing' the email address before comparing it for uniqueness by removing any + parts (e.g. [email protected])?

Vedi I Sapevo come convalidare un indirizzo e-mail fino a quando non ho letto l'RFC per ulteriori informazioni, ma non andrei a disinfettare l'indirizzo, dal momento che ci credo o no quanto segue sono tutti validi:

L'uso dell'indirizzo email come nome utente può portare a enumerazione del nome utente se implementato in modo errato, ed è più un bersaglio che nomi utente arbitrari - l'autore dell'attacco ha maggiori probabilità di conoscere quelli validi poiché è probabile che siano gli indirizzi email pubblici degli utenti. Tuttavia, questo è un problema risolvibile .

Blocco account Il servizio DoS può essere mitigato limitando i tentativi di accesso falliti ripetuti o le reimpostazioni della password sia per indirizzo email sia per indirizzo IP singolarmente.

Dovresti anche convalidare l'indirizzo email di tutti i nuovi utenti facendo in modo che facciano clic su un'e-mail di attivazione. Ciò garantisce che l'indirizzo di posta elettronica sia dell'utente e che possa reimpostare l'accesso in futuro, se necessario. Puoi combinare la registrazione con il sistema di reimpostazione della password per poter uccidere due piccioni con una fava.

    
risposta data 05.08.2014 - 18:36
fonte
1

L'email come nome utente è una cattiva idea, perché una significativa classe di potenziali utenti non ha controllo a lungo termine sulla loro posta elettronica. Gli ISP vanno e vengono, e per una ragione o un'altra e-mail gli indirizzi diventano inutilizzabili o non disponibili.

    
risposta data 05.08.2014 - 19:52
fonte

Leggi altre domande sui tag