2010-09-12 8 views
2

Je travaille sur une application où les utilisateurs peuvent s'inscrire quand ils reçoivent une invitation par e-mail pour l'application. En ce moment, ce que je fais est de générer des codes d'invitation qui sont envoyés aux utilisateurs et stockés dans la base de données. L'utilisateur va alors à l'adresse indiquée dans l'e-mail qui contient le code d'invitation, comme ceci:Inscription d'utilisateur avec invitation

http://myapp.com/user/register/56jk4564k6567kj686kjh56

Je flânais si un autre aproaches sont meilleurs, comme le stockage que l'e-mail de l'utilisateur et en évitant l'invitation d'envoyer codes.

De même, en utilisant les codes d'invitation, est-il nécessaire de les crypter?

+0

Quel est le problème avec le système de code d'invitation? – Jasper

+0

Rien de vraiment, ça marche en ce moment (test), mais je veux juste confirmer que c'était une bonne idée de faire de cette façon. – Fungsten

+0

Eh bien, il est .... – Jasper

Répondre

1

Invita Les codes d'identification sont probablement les meilleurs, car ils servent à valider l'adresse électronique, ce qui signifie qu'il y a une étape de moins à franchir lorsque l'utilisateur s'inscrit. Normalement, vous devrez envoyer un code secret à l'utilisateur par e-mail pour vérifier que l'adresse e-mail est bien réelle - eh bien, vous venez de le faire!

Une considération est ce qui se passe si un utilisateur reçoit une invitation à une adresse alors qu'il veut réellement utiliser une adresse e-mail différente pour s'inscrire? Peut-être qu'ils ont plus de 1 et veulent en utiliser un autre? (travail vs personnel par exemple) Vous aurez besoin du code pour valider que la personne est la même. En ce qui concerne le cryptage, je ne voudrais pas déranger: si votre base de données est piratée et que les codes sont volés, il est assez facile d'en créer de nouveaux et de les renvoyer.

+0

Merci James, c'est comme ça que ça marche, mais je n'ai pas pensé à la situation que vous avez mentionnée, je vais y travailler. – Fungsten

-2

oui, vous pouvez envoyer un hachage d'adresse e-mail avec le lien:

$email = '[email protected]'; 
$check = md5('SECRET' . $email); 
$link = "register?email=$enail&check=$check" 

sur la page « registre », calculer le hachage à nouveau et comparer avec celui du lien:

màj: il est juste un exemple, dans la vie réelle, vous devez stocker le sel en dehors du code principal:

$salt = get_salt_from_config_file(); 
$check = md5($salt . $email); 
+0

Jusqu'à ce que quelqu'un travaille tout ce que vous faites est de hacher l'adresse e-mail, puis chaque script-kiddie peut s'inscrire autant de fois qu'ils le veulent. Le mot 'SECRET' ne fait pas grand-chose - que se passe-t-il s'il s'agit d'un système open source? – James

+0

Cela signifie que le code source connu = fuite de sécurité majeure. Ce n'est pas une bonne chose. – Jasper

+0

@James: le rendre modifiable pour l'administrateur du site (par exemple dans le fichier de configuration). – user187291

Questions connexes