Mammouth du PHP |
19672 Messages
23 févr. 2006, 20:50
Bon, je vais prendre un exemple qui sera plus clair : suppose que je m'inscris. Tu envoies un courriel avec un lien d'activation, mais ce lien comporte des paramètres, ce qui donnerait pour la création du lien:
<?php
$pseudo = "Cyrano";
$chaine_hachee = md5("CyranoNomPrenom");
$url = "<a href=\"http://mon_site.com/activation.php?pseudo=". $pseudo ."&cle=". $chaine_hachee ."\">Activez votre compte</a>";
echo($url);
?>
La dernière ligne n'est là que pour l'illustration, la variable serait à intégrer dans le message : Mais la chaine serait alors :
Code : Tout sélectionner
<a href="http://mon_site.com/activation.php?pseudo = Cyrano&cle=1226df9e32737581a163e2f22212e486">Activez votre compte</a></body>
Ce qui va simplement afficher
Activez votre compte
Dans la page de réception, ici, activation.php, tu récupères les deux paramètres. Avec le premier, tu vas récupérer le nom et le prénom correspondant avec une requête SQL. Tu reconstitues ensuite la chaine qui a servi à créer la clé et tu la haches de la même manière, puis tu compares avec le second paramètre envoyé.
Changer le pseudo rendra la clé invalide, et changer un caractère de la chaine hachée ne correspondra plus au pseudo : possibilité d'usurpation quasiment nul.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 