Bonjour,
j'effectue une refonte du système d'inscription / activation / connexion d'utilisateurs pour un intranet en entreprise.
J'utilise à présent 2 fonctions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part password_hash($pass, PASSWORD_BCRYPT); // pour stocker le hash du password dans la base de donnéeCela fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part password_verify($pass, $hash); // pour vérifier le password fourni à la connexion
Maintenant je souhaite implémenter l'envoi par mail du lien d'activation du compte et l'envoi par mail du lien de réinitialisation du password.
Pour le moment, l'inscription de l'utilisateur enregistre son email et le datetime de l'inscription pour gérer l'expiration du lien d'activation (3H).
Pour le lien d'activation, j'avais pensé à hasher en sha1 l'adresse email et le datetime
page d'activation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // [...] création du compte [...] $hash=sha1($email.$datetime); $lien="http://www.monsite.com/activation.php?email=".$email."&hash".$hash; // [...] envoi du mail [...]
Qu'en pensez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // [...] récupération GET de l'email et du hash [...] // [...] récupération dans la BDD du datetime lié à l'email [...] // [...] vérification que le lien n'est pas expiré [...] $hash=sha1($email.$datetime); if ($hash_recu === $hash) { // activation du compte... }
Du point de vue sécurité / conception... ça tiens la route ?
Merci pour vos futures remarques !
Partager