it-swarm-eu.dev

Il modo più sicuro per gestire qualcuno che dimentica di verificare il proprio account?

Supponiamo di inviare una verifica e-mail ai nuovi abbonati che devono fare clic su un collegamento per verificare il loro account.

Supponiamo che abbiano dimenticato di verificarlo e in seguito provino ad accedere.

Il messaggio di errore dovrebbe indicare "Il tuo nome utente o password non sono corretti?", Invece di far loro sapere che si sono dimenticati di verificare l'account.

Presumo che questo sia il modo più sicuro di gestirlo, perché se diciamo loro che devono verificare l'account, stiamo facendo loro sapere che esiste un account con quell'ID utente ...

Pensieri?

Forse il modo migliore per gestirlo è consentire loro di accedere all'account, ma non lasciare che facciano nulla fino a quando non vengono verificati?

30
Ole

Quello che vedo più comunemente è consentire l'autenticazione e l'accesso dell'utente, ma bloccare le funzionalità significative fino alla verifica dell'e-mail. Dovresti eliminare un errore che ricorda all'utente di inviare nuovamente un'e-mail di attivazione se tenta di accedere a una delle funzioni riservate.

È un progetto scadente mentire a un utente: se inviano il nome utente e la password corretti, non si dovrebbe mai mostrare un errore sostenendo che uno dei due non è corretto.

80
Buffalo5ix

Sono d'accordo con Buffalo5ix, ma la verifica tramite e-mail non deve essere considerata parte della sicurezza dell'account. Verifica email:

  • dimostra la proprietà dell'indirizzo, solo per sapere che l'utente ha inserito l'indirizzo corretto per l'invio spam email di recupero password.
  • funge da deterrente molto leggero per la registrazione di più account falsi. È abbastanza facile automatizzare la creazione di indirizzi e-mail (utilizzando tempmail/hosting del proprio server e-mail) e fare clic automaticamente sui collegamenti di convalida, quindi CAPTCHA sarebbe un sistema migliore per proteggere dalla registrazione automatica di account falsi.

Non riesco a vedere alcun motivo relativo alla sicurezza per cui dovresti bloccare gli account non verificati in alcun modo. [CHIARIMENTO: sto no sostenendo che dovresti inviare messaggi a account e-mail non verificati, che sarebbe almeno spam e, nel peggiore dei casi, darei a persona a caso la possibilità di reimpostare la password dell'account se l'utente digitava male la sua e-mail. Sto dicendo che l'accesso all'account non dovrebbe essere disabilitato, invio di e-mail all'indirizzo ovviamente non verificato dovrebbe essere.]

Preferisco il piccolo banner nella parte superiore dello schermo che mi ricorda di verificare l'account e richiede di inviare nuovamente l'e-mail di verifica. Trattare l'utente come un sospetto criminale o infastidirlo subito dopo essersi registrato non è educato, accoglilo.

8
Andrew Morozko

Non si desidera perdere le informazioni sull'esistenza del nome utente in risposta a un tentativo di accesso non autenticato. Ciò consentirebbe agli aggressori di determinare quale degli indirizzi e-mail nel loro elenco esiste con il tuo servizio.

Ma se l'utente accede con la password che ha fornito al momento della registrazione, questa non è la situazione in cui ti trovi. Sai (per quanto tu abbia mai fatto con le password) che la persona che effettua l'accesso sia la stessa persona che ha registrato quella password. Quindi non c'è nulla di male nel dire loro che esiste il loro nome utente; lo sanno, dal momento che l'hanno registrato!

Quello che non sai è che questa persona controlla effettivamente l'indirizzo email che hai per loro. Questo in realtà non è correlato alla verifica dell'identità della persona che accede con una password. Potresti voler usarlo come mezzo alternativo per dimostrare la loro identità (in modo che possano recuperare dalla perdita della password). Non aver verificato la loro e-mail significa che non puoi farlo in modo sicuro (poiché non sai che la persona che ha registrato controlla quell'indirizzo e-mail), quindi il loro controllo del proprio account non è stato stabilito in modo sicuro. Ma ciò non significa che hai più motivi del normale dubitare che la password abbia dimostrato chi erano e trattarli come un utente non autenticato.

Se decidi che è importante non consentire agli utenti di accedere e utilizzare il tuo servizio senza verificare la loro posta elettronica, una volta stabilita l'identità della persona con cui stai comunicando, devi semplicemente dire loro qual è il problema e lasciare loro affrontalo.

7
Ben

Vorrei sottolineare qualcosa che forse viene trascurato

Il messaggio di errore dovrebbe indicare "Il tuo nome utente o password non sono corretti?", Invece di far loro sapere che si sono dimenticati di verificare l'account.

Presumo che questo sia il modo più sicuro di gestirlo, perché se diciamo loro che devono verificare l'account, stiamo facendo loro sapere che esiste un account con quell'ID utente ...

Se devono inserire le informazioni di autenticazione, puoi comunque far loro sapere che devono verificare il loro account per accedervi ... purché invii quel messaggio solo se l'autenticazione è corretta. Non stai perdendo alcuna informazione in questo modo, perché dovrebbero inserire una password valida per arrivare a quel messaggio su un determinato account, a quel punto sarebbero comunque all'interno dell'account.

Se ritieni davvero che un account non verificato debba effettivamente essere bloccato fino alla verifica, questo è un modo perfettamente perfetto per gestirlo (offri anche un'opzione per reinviare l'e-mail di verifica per questa schermata, poiché le cose si perdono nello spam/ecc.).

1
taswyn

Supponendo che tu abbia un modulo di iscrizione che non consente nomi utente duplicati, è banale verificare se il nome utente esiste.

0
Solomon Ucko

Tieni presente che qualcuno potrebbe essersi registrato con un indirizzo e-mail che non gli appartiene. Sapendo che, se è richiesta la posta elettronica , dovresti:

  • Elimina automaticamente gli account che non sono stati verificati dopo X giorni. O, meglio, non creare mai account completi in primo luogo e metterli invece in un elenco in sospeso fino al completamento della verifica (e consentire a più voci dello stesso indirizzo di questo elenco). Dovresti notare questa cancellazione automatica nel testo dell'email e anche nella pagina di registrazione.

  • Oppure, se non si eliminano automaticamente gli account, è necessario fornire un modo al legittimo proprietario dell'e-mail di creare successivamente un proprio account (a quel punto è necessario invalidare/eliminare nuovamente l'account precedente).

Naturalmente, non dovresti consentire alcun accesso fino a quando l'e-mail non sarà verificata. E non dovresti mai inviare ulteriori e-mail (incluso marketing, ecc.) All'indirizzo fino a quando non viene verificato.

Se la posta elettronica è facoltativa per il servizio, sii esplicito a riguardo e non rendere affatto la posta elettronica un campo obbligatorio. In tal caso, se qualcuno inserisce un'e-mail ma non la verifica mai, è possibile procedere senza funzionalità relativa all'e-mail, ma, di nuovo, assicurarsi che lo stesso indirizzo e-mail possa essere riutilizzato in seguito dal legittimo proprietario.


Non posso sottolineare abbastanza quanto possa essere incredibilmente frustrante quando qualcun altro registra un account con il tuo indirizzo e-mail, impedendoti di registrare il tuo account sul servizio perché quell'indirizzo e-mail è unico nel database ed è stato "rivendicato" dal altro account. Anche se il proprietario dell'e-mail può facilmente ripristinare la password dell'account, ciò non aiuta il fatto che l'account sia stato personalizzato da qualcun altro. Non mettere gli utenti in quella posizione.

0
Bob