2009-11-06 6 views
0

Je construis un site qui offre des fonctionnalités aux utilisateurs sans les obliger à s'enregistrer. L'idée est d'envoyer un email à l'adresse indiquée contenant un lien avec un token. De cette façon, l'utilisateur pourrait ce lien à tout moment, ils veulent apporter des modifications à la fonctionnalité. Bien que je me rende compte qu'il n'y a aucun moyen de vraiment sécuriser un tel concept, je cherche des options pour minimiser la visibilité du jeton. Dans son état actuel, dès que l'utilisateur clique sur le lien, il est ajouté à l'historique de son navigateur, accessible à toute personne ayant accès à l'ordinateur.URL de courriel et de jeton réutilisable

Dans la plupart des cas, je viendrais avec un formulaire simple afin que le jeton puisse être transmis avec une requête POST, mais les formulaires ne sont pas vraiment pris en charge dans les courriels. Donc, la question est, est-ce que quelqu'un sait d'une autre façon de cacher un jeton dans un tel e-mail?

Répondre

0

Je suis sûr que vous avez pensé à cela, mais vous pouvez leur envoyer un mot de passe et un lien vers une URL où ils auraient besoin d'entrer ce mot de passe. Si l'URL envoyée par e-mail contenait un autre mot de passe, la sécurité serait plus limitée que d'habitude pour rendre le mot de passe saisi par l'utilisateur assez court, comme un numéro PIN, disons.

+0

Je ne considère cela, mais espérait éviter. Mais à la fin, je crois que c'est le meilleur cheval pour le travail. Ils devront simplement composer avec une courte épingle une fois sur le site. Merci pour la réponse. – rayblasdel

0

Vous pouvez renvoyer un nouveau jeton à chaque fois que l'utilisateur souhaite se connecter. Demandez-lui de replier son adresse e-mail et de lui envoyer un nouveau jeton, tout en définissant les jetons précédents sur 'expiré'. Ou, si le serveur détecte qu'un ancien lien/jeton a été utilisé, il peut automatiquement en envoyer un nouveau à l'adresse e-mail associée et demander à l'utilisateur de vérifier son adresse e-mail pour un nouveau lien. Cela nécessiterait de garder une trace des anciens jetons expirés et des adresses e-mail associées, mais ne nécessite toujours pas d'enregistrement. Il suffit qu'un utilisateur vérifie son courrier chaque fois qu'il souhaite se connecter. Authentification par email.

Ce serait également contre-intuitif pour les utilisateurs.

Cela transformerait le jeton en un cryptographic nonce, qui est principalement utilisé pour empêcher l'attaque de relecture que vous avez mentionnée.

0

Une autre réponse, peut-être plus utile:

Certains navigateurs (comme Chrome) ne pas enregistrer 301 "Moved Permanently" dans l'histoire réoriente du navigateur. Firefox fait, mais il y a une proposition de changement que: https://wiki.mozilla.org/Browser_History:Redirects

Par exemple, dans Chrome, si vous naviguez directement à

amazon.com

il suivra une redirection 301 à

www.amazon.com

Si vous vérifiez ensuite l'historique du navigateur, il ne montrera

www.amazon.com

Ainsi, si votre serveur renvoie une redirection 301 à partir du lien de connexion, le serveur peut enregistrer le jeton, le retirer du lien de redirection, et le navigateur de l'utilisateur ne ferait enregistrer le lien de redirection.

(ce qui est la première fois capable de répondre sur un dépassement de pile - laissez-moi savoir si mon écriture ne sait pas ou si je suis absent autre étiquette)

+0

J'aime le concept, mais comme les formulaires dans le courrier électronique, cela dépend du comportement du navigateur. – rayblasdel