it-swarm.dev

Quanto tempo deve durare un link di conferma dell'indirizzo e-mail e perché deve scadere?

Dopo che un utente ha registrato un messaggio di posta elettronica che gli è stato inviato con un collegamento su cui deve fare clic per attivare l'account. So che altri siti hanno un limite alla quantità di tempo che l'utente deve fare clic sul collegamento, altrimenti il ​​collegamento scade. Vieni a pensarci perché è necessario? È per impedire a un utente malintenzionato di creare account per i quali non possiede l'e-mail registrata perché potrebbe generare una quantità arbitrariamente grande di account e avere un tempo illimitato per indovinare i collegamenti di attivazione ad essi?

Se è necessario, per quanto tempo l'utente deve fare clic sul collegamento?

39
Celeritas

La maggior parte dei siti Web consente di utilizzare un indirizzo e-mail solo per un account, il che ha senso perché, nella maggior parte dei casi, gli utenti hanno bisogno di un solo account. Pertanto, è richiesto un indirizzo e-mail univoco.

Detto questo, una volta che l'utente si è registrato ma deve solo confermare il suo indirizzo e-mail, si desidera inserire nel database l'indirizzo e-mail dell'utente per non consentire a qualcun altro o alla stessa persona di registrarsi nuovamente. Se non gestisci la scadenza della conferma via e-mail, qualcuno potrebbe registrarsi con l'indirizzo e-mail di qualcun altro e non confermarlo mai che bloccherebbe l'e-mail dell'utente legittimo se dovesse mai registrarsi al tuo sito web.

Se l'utente non ha confermato il suo indirizzo e-mail per un determinato periodo di tempo, si desidera renderlo nuovamente disponibile, nel caso in cui non fosse proprio il suo indirizzo o se si desidera registrare nuovamente in un secondo momento. Considera il caso in cui un utente ha inserito l'indirizzo e-mail errato per errore.

Ora per il giusto periodo di tempo, direi che dipende dal tipo di sito web che è. Non vedo il punto di consentire più di qualche ora perché l'utente dovrebbe essere in grado di accedere rapidamente al suo indirizzo e-mail se fosse in grado di registrarsi al tuo sito Web. Considera il caso in cui un utente ha dimenticato la password del suo indirizzo e-mail e non può accedervi. Potrebbe essere necessario eseguire alcuni passaggi per recuperare la password che potrebbe richiedere del tempo. Tuttavia, sarebbe davvero dannoso se dovesse registrarsi di nuovo? Ancora una volta, dipende dal sito Web.

42
Simon

Prendendo gli attacchi di esaurimento delle risorse fuori dall'equazione, non c'è motivo per cui tu debba scadere quei collegamenti.

Detto questo, dovresti pensare a come il 99% degli utenti utilizzerà il tuo sito e ottimizzerà per questo. Sarà raro che qualcuno trovi un link di attivazione di 18 mesi nella sua casella di posta E ricordi il tuo sito E lo trovi ancora utile E fai clic su quel link.

Con collegamenti o codici di attivazione che durano per sempre, devi mantenerli per sempre. Se hai un sito popolare che potrebbe contenere molte righe nel tuo DB.

Qual è lo scenario peggiore se scade quei link dopo 10 giorni e devono fare di nuovo clic su "Crea account"?

A proposito, bloccare l'attivazione per un utente B perché l'utente A ha già utilizzato il proprio indirizzo e-mail (erroneamente o maliziosamente) è un'esperienza molto negativa. Non si tratta di chi arriva prima, ma di chi possiede effettivamente l'account e-mail.

8
u2702

Sono d'accordo con this answer (+1). La maggior parte dei siti deve avere una funzionalità ' Reinvia email di verifica' perché l'e-mail originale può essere persa lungo il percorso o bloccata da un filtro antispam. Ciò significa che, contrariamente a la risposta più votata , nessuno può bloccare la mia e-mail perché posso sempre rispedire l'e-mail di verifica al mio indirizzo. Quindi l'unica vera ragione per la scadenza dei collegamenti di verifica è risorse di archiviazione : vogliamo rimuovere gli account (collegamenti) non verificati per evitare che lo spazio di archiviazione cresca indefinitamente o rallenti. Quindi abbiamo bisogno di un modo ragionevole per rimuovere gli account non verificati "scaduti" (diciamo 48 ore dall'invio dell'ultima email di verifica).

6
Dmitry