JeuWeb - Crée ton jeu par navigateur
Regénération de mot de passe pour votre site - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Regénération de mot de passe pour votre site (/showthread.php?tid=2634)

Pages : 1 2 3


Regénération de mot de passe pour votre site - notalone - 14-09-2010

Bonjour all Smile

voilà, je viens de faire un petit script pour un ami pour que ses membres lorsqu'ils re-demandent un mot de passe parce-qu'ils l'ont oubliés, je vous met à disposition ce petit script que vous pouvez améliorer très facilement,


<?php
//script de regénération de mdp

//on crée un array qui va contenir toutes les lettres et chiffres
$value=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0');

//on compte ce que possède le array $value
$value_array=count($value);
$value_array=$value_array-1;

//on va créer le nouveau mot de passe à 10 caractères
$new_pass='';

for($i=0; $i<10; $i++){
$key=mt_rand(0,$value_array);
$new_pass.=$value[$key];
}

//une fois le passe créé on l'affiche et/ou on le met à jour dans la bdd et on l'envoie par email

//attention quand tu va l'enregistrer dans la bdd oublie pas de le convertir en md5 Wink et quand tu l'envoie au joueur envoie lui sans le md5 Smile le md5 tu le mettra directement dans la requete Smile
echo $new_pass;
?>

Quelques petits détails:

Le $value_array=$value_array-1; je l'ai mis parce que dans un tableau le premier mot ou caractère commence toujours par 0, et comme le count() va compter 36 mots dans le array (ce qui est vrai bien entendu), cela générera une erreur lors de la fonction mt_rand() car si le chiffre 36 est appelé beh dans l'array il n'existera pas puisque ça commence par 0 donc le max sera de 35 et non 36 Smile.

C'est un peu dire à expliquer correctement mais si vous ne comprenez pas dites le moi et j'essayerai de mieux expliquer Smile


RE: Regénération de mot de passe pour votre site - Sephi-Chan - 14-09-2010

Merci pour la ressource, mais en terme de procédure, quitte à envoyer un mot de passe par mail, pourquoi ne pas envoyer l'utilisateur sur une page sur laquelle il renseignera un nouveau mot de passe ?


Sephi-Chan


RE: Regénération de mot de passe pour votre site - notalone - 14-09-2010

Après bien entendu ça dépend du goût de l'administrateur, soit il fait en sorte que le membre re-crée lui même sont mot de passe ou alors moins de prise de tête on lui en re-crée un automatiquement et qui lui sera envoyé Smile

après les deux solutions sont ok mais reste une histoire de goût je penses ^^
Et surtout le faite d'envoyer un nouveau mot de passe par e-mail permet d'être sur que ce soit la bonne personne qui DEMANDE à changé de mot de passe, car si on redirige sur une page pour en refaire un autre je pense que n'importe qui pourrais changer le mot de passe :/


RE: Regénération de mot de passe pour votre site - My Hotel - 14-09-2010

Sinon, y'a la méthode Vernam, basée sur une question secrète, qui est assez intéressante je trouve : http://www.siteduzero.com/tutoriel-3-158277-renvoyer-un-mot-de-passe-par-e-mail-la-methode-vernam.html D'après ce tuto, c'est assez utilisé.

Sinon, la question secrète (couplée à une autre info, pour être tranquille, style code postal) peut simplement servir à accéder à la page de redéfinition du MDP.

Mais merci de la ressource

Bye


RE: Regénération de mot de passe pour votre site - srm - 14-09-2010

Sympa mais moi je ferais plutôt un bête : substr(md5(microtime(true)),0,8)
Hop hop Big Grin


RE: Regénération de mot de passe pour votre site - Sephi-Chan - 14-09-2010

Les gens ne gardent pas les mots de passes générés : la première chose qu'ils vont faire : en définir un nouveau.

Et puis ta technique a une faille majeure : si je vais sur la page d'oubli de mot de passe et que je rentre ton email, le site va modifier le tiens et te l'envoyer par mail : ça va t'agacer car tu ne l'auras pas sollicité (et imagine que je m'amuse à faire ça tous les jours ou que je crée un bot pour le faire). Donc la solution n'est pas bonne.

Avec ma technique, au pire des cas tu reçois un email que tu peux ignorer. Et bien sûr, le lien vers la page de saisie du nouveau mot de passe utilise un token à usage unique généré pour l'occasion afin qu'un autre utilisateur ne puisse pas voler le compte.


Sephi-Chan


RE: Regénération de mot de passe pour votre site - notalone - 14-09-2010

Ouai c'est sur que le code sera bien compliqué à trouver xD mdr


RE: Regénération de mot de passe pour votre site - Ter Rowan - 14-09-2010

(14-09-2010, 05:31 PM)oxman a écrit : Sympa mais moi je ferais plutôt un bête : substr(md5(microtime(true)),0,8)
Hop hop Big Grin

pourquoi ai je l'impression que ce garçon est un fou furieux ?
sinon effectivement hop hop c'est pas mal aussi


RE: Regénération de mot de passe pour votre site - notalone - 14-09-2010

Attention lol là ce n'est que le script qui génère un nouveau mot de passe.. j'ai pas mis le reste pour vérifier que c'est bien le joueur etc etc Smile àa, sa reste au joueur de le déterminer seul après Smile

Et encore faut-il connaitre l'adresse mail du joueur ^^ mise à part si tu le connais je ne vois pas comment tu peux faire^^ après c'est sur que si l'adresse msn des joueurs peut figurer sur le site c'est autre chose ^^

Mais ton idée est tout aussi bonne aussi je dois le reconnaître Smile


RE: Regénération de mot de passe pour votre site - Scrat - 14-09-2010

Pour ma part je trouve que la technique de Sephi-Chan est bien meilleure en effet car "personne" ne garde un mot de passe généré aléatoirement, tout simplement car tu le retiens difficilement.

Même s'il y a un mail pour se souvenir, c'est bien trop contraignant. Après ça dépend des utilisateurs. Les joueurs sont souvent habitués à ce genre de système.

Pour ma part, j'ai déjà eu des clients qui désirent recevoir leur mot de passe via mail lors d'un oubli.

Donc il faut crypter le mot de passe avec un clé avant de le stocker, mais pouvoir le décrypter (avec cette même clé) en cas de demande de l'utilisateur. (j'aime pas trop pouvoir décrypter un mot de passe mais... le client est roi)