Limitée dans le temps, ou un temps d'utilisation, la réinitialisation de mot de passe de jetons?

Utilisateurs oublier les mots de passe, et (presque) tous les sites d'adhésion besoin d'un moyen pour aider les utilisateurs à accéder de nouveau.

J'aimerais mettre en œuvre le scénario commun:

  1. Utilisateur hits site, essaie d'ouvrir une session, ne peut pas, et se rend compte qu'ils ont oublié mot de passe de la merde!
  2. Utilisateur entre l'adresse email et clique sur "mot de passe oublié"
  3. L'utilisateur reçoit un email avec un lien de réinitialisation de mot de passe

Voici comment j'ai l'intention de mettre en œuvre des ce (C#/ASP.NET MVC):

  1. Lorsque l'utilisateur entre e-mail et hits "mot de passe oublié" sur le bouton de mon site va générer un GUID, de le stocker sur le membre de l'entité dans la base de données (member.ResetToken), et de les envoyer par courriel un lien avec ce GUID dans l'url (l'e-mail envoyé les informe qu'ils peuvent utiliser ce lien pour un temps seulement)
  2. Utilisateur clique sur le lien et mon site à la recherche de leur compte en se fondant sur que member.ResetToken à partir de l'url. Si leur compte est trouvé leur montrer un formulaire de réinitialisation de mot de passe, et quand ils ont terminé la réinitialisation efface le member.ResetToken à partir de leur compte.

Voici ma question: gardez-le comme ceci (dans lequel ils peuvent réinitialiser leur mot de passe avec ce lien à tout moment, maintenant ou dans l'avenir), ou ajouter un horodatage à la limite de combien de temps ils ont pour réinitialiser leur mot de passe?

À partir d'un UX point de vue de la possibilité de réinitialiser votre mot de passe chaque fois que vous êtes prêt est grand, mais je veux m'assurer que je ne suis pas passer à côté des questions de sécurité, cela pourrait soulever.

Générer une demande de réinitialisation et de l'e-mail et de le rendre limitée dans le temps, mais ne changez pas le mot de passe. En changeant de mot de passe et de l'envoi de la réinitialisation, il est facile de souffler quelqu'mot de passe 🙂
Ce n'est pas ce que j'ai décrit. 😉 Le mot de passe est changé par l'utilisateur. Une url avec réinitialisation de mot de passe est envoyé lorsqu'ils cliquent sur "j'ai oublié mon mot de passe". Le GUID est la réinitialisation de mot de passe (même si je vais probablement pas utiliser un GUID, mais quelque chose de plus aléatoire). Je me demande si une fois de jeton de sécurité suffisante par rapport à un temps limité jeton. Merci bien.
Ouais, j'ai compris ce que vous disiez, découvrez ma réponse.

OriginalL'auteur Chaddeus | 2013-10-09