2009-07-21 1 views
2

Je veux créer une application de newsletter et les utilisateurs devront naturellement confirmer qu'ils se sont inscrits à la newsletter afin de ne pas les spammer si un bot a entré des adresses.Un e-mail d'activation de compte d'utilisateur sans secret conservé dans le DB est-il raisonnablement sécurisé?

Mon idée était de simplement envoyer à l'utilisateur un email qui contient un lien qui a un secret dans l'URL, qui est un hachage de l'adresse e-mail et une clé de site secrète.

Mes questions sont les suivantes: Quelqu'un peut-il en enregistrant quelques comptes et donc recevoir le hachage du secret avec son adresse, devinez le sitekey et ainsi enregistrer chaque adresse e-mail qu'elle veut?

Je ne vois rien qui pourrait être gagné de faire cela, mais si c'est très facile, il y a de fortes chances que quelqu'un le fasse et que je sois mis sur une liste noire.

La raison pour laquelle je ne stocke pas un compte utilisateur non activé est simplement que je ne veux pas les supprimer tous les x jours de la base de données.

Répondre

5

Si vous vous assurez que vous utilisez quelque chose comme sha1 avec un salt/sitekey complètement aléatoire, alors il serait futile de tenter de désosser la clé de site avec une attaque de dictionnaire.

Si quelqu'un ne veulent synthétiser leur propre hash pour enregistrer des adresses arbitraires, une utilisation plus efficace de leur temps serait d'accéder à votre serveur pour lire le code source :)

+0

Merci pour la paix d'esprit :) – nasmorn

2

Je pense qu'il serait préférable de générer un secret aléatoire et de le garder dans la base de données. De cette façon, il n'y a rien qui puisse être deviné. (Au moins pas rien qui donne la permission d'ajouter un email).

Questions connexes