2011-04-13 5 views
0

Je suis en train de concevoir un e-mail pour résumer les états des utilisateurs et cet e-mail suggère aux utilisateurs de prendre des mesures dans leurs comptes. Donc, je me demande s'il y a un moyen d'autoriser les utilisateurs à entrer dans leur propre compte à partir d'un e-mail immédiatement, sans une étape de connexion supplémentaire?La limitation du courrier électronique

+0

Connectez-vous à une application Web (application de bureau, téléphone, autre?) –

Répondre

1

Vous pouvez générer une URL unique unique pour permettre à l'utilisateur de se connecter en stockant le token dans une base de données et en l'associant au compte de l'utilisateur. Vous pouvez structurer l'URL comme ça, si vous voulez:

http://www.example.com/login.php?token=EWYAOpJBHgEioVrWRDzeDGhySEyOGKpsaUIe0EnF 

Les choses au hasard à la fin serait pratiquement impossible de se fissurer par la force brutale, comme vous pouvez le faire arbitrairement longtemps. Une fois que l'utilisateur se connecte à l'aide de cette URL, vous pouvez l'empêcher d'être réutilisé en le redirigeant vers la page d'accueil, lui donner un message d'erreur indiquant que l'URL était temporaire et expirée ou lui offrir un bouton qui envoie un email avec une autre URL.

Mais je pense qu'il serait préférable que vous fournissiez simplement à l'utilisateur un formulaire partiellement rempli (ayant seulement le nom d'utilisateur) lorsqu'il a cliqué sur le lien, car cette URL pourrait être recyclée ou laissée à elle sans se soucier de une brute-forcer voyou.

4

Bien sûr. Si vous écrivez l'application, tout est possible.

La façon habituelle de procéder est d'inclure un "authentificateur" dans chaque lien que vous fournissez à l'application. Où, lorsque nous disons "authentificateur", nous entendons par "lettres et chiffres aléatoires".

Chaque lien vous incluez pourrait ressembler à:

<a href="...?auth=ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i">Delete My Account Forever</a> 

Pour faire ce travail, la base de données devra enregistrer que ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i est un authentifiant valide pour avoir accès à, disons, compte de VoteyDisciple. Le problème, bien sûr, est que si quelqu'un d'autre voit cet e-mail (y compris si je devais le transmettre à quelqu'un), il pourrait également cliquer sur le bouton. le lien et maintenant usurper l'identité de moi! Vous pouvez atténuer cela en imposant une limite de temps sur la durée de validité d'un tel authentificateur, en limitant son utilisation à une seule action spécifique (par exemple, «Je vous laisse faire X, mais si vous voulez faire autre chose Mais à la fin le fait que votre objectif soit de laisser les gens se connecter sans se connecter indique que ce n'est pas un environnement de haute sécurité, donc le risque que un authentificateur peut être compromis peut-être pas de grande préoccupation

+0

Je vous remercie de votre réponse rapide. – dsmonkey

Questions connexes