[Réglé] Ûtilisation BDD - Version imprimable +- MyBB.support, le portail francophone de MyBB (https://mybb.support) +-- Forum : Plug-ins et modules pour MyBB (https://mybb.support/forum-32.html) +--- Forum : Support (https://mybb.support/forum-15.html) +--- Sujet : [Réglé] Ûtilisation BDD (/thread-4925.html) |
Ûtilisation BDD - Malak - 18-11-2011 Bonjour a tous, voila je commence a travailler sur un module ANNEXE à mybb qui aurait besoin des logins de la base de données de MyBB de notre site. Je vous explique en deux mots, j'aimerai utiliser la BDD users de MyBB de notre site pour se connecter via les pages web que je suis entrain de créer. Le soucis étant que en observant les BDD, je me rends compte que MyBB encrypte/hach les mots de passes et je ne trouve ni ou ni comment ... Voulant partir de rien, je cherche a savoir quelle fonctions je dois utiliser pour transformer le mot de passe entré par mon utilisateur sur ma page pour qu'il corresponde a celui enregistré dans MyBB (s'il est correct bien évidemment) pour lui autoriser l'entrée sur ces pages requérant donc cette identification. J'ai donc pour cela un formulaire créé expressément pour ca ... mais pour le champ du mot de passe ($_POST['mot_de_passe'] par exemple) je ne sais pas ce que je dois en faire pour qu'il soit "transformé" de la meme manière que dans les tables mybb_users. Si quelqu'un a une information, aussi petite soit-elle, il me rendrait un grand service en me la communicant Bonne journée, Malak P.S.: j’espère avoir été le plus clair possible. RE: Ûtilisation BDD - MarechalSummers - 19-11-2011 MyBB utilises un hashage spécifique dérivé du md5, avec un clé créée aléatoirement (elle est dans la table mybb_user, sous le nom de "salt") C'est impossible de le déhasher. RE: Ûtilisation BDD - JWH Smith - 19-11-2011 L'algorithme du MD5 a récemment été percé, c'est pourquoi peu de développeurs l'utilisent de nos jours. Cependant, pour vérifier le mot de passe d'un utilisateur, tu peux crypter la chaîne entrée en $_POST['mot_de_passe'], et la comparer à l'entrée dans la BDD. La fonction de cryptage de MyBB est celle-ci : Code PHP : function salt_password($password, $salt) Avec $salt, la valeur du champ salt de l'utilisateur (enregistré dans la BDD). RE: Ûtilisation BDD - Malak - 19-11-2011 Ce que je cherche, c'est connaitre le type de hachage utilisé par MyBB pour pouvoir comparer la valeur dans les tables mybb_users et la valeur entrée par l'utilisateur. Je pense que c'est exactement ce que Smith a posté, mais je ne comprends pas un truc. MyBB encrypte le pass concaténé au md5 d'une clé créée de maniere aléatoire ? C'est ca ? Donc ce qui est contenu dans la base de donnée, c'est le return de la fonction que tu m'as gentillement posté ? RE: Ûtilisation BDD - JWH Smith - 19-11-2011 MyBB n'utilise aucune méthode aléatoire ou propre : il s'agit d'un cryptage par sel. On récupère le sel associé à l'utilisateur (champ "salt" de la base de données), on le crypte en md5, puis on le suit du mot de passe saisi par l'utilisateur (ex: $_POST['password']). Le tout est alors recrypté en md5. La façon de faire de MyBB est incomplète (et puis le cryptage md5 n'est plus sur depuis qu'il a été cracké), mais elle est assez commune. RE: Ûtilisation BDD - Malak - 20-11-2011 okay donc c'est bien comme je l'avais imaginé. Et le sel associé est défini à la ligne 936 de member.php ? merci beaucoup pour ces reponses, c'est exactement ce que je cherchais, ca va m'aider enormément RE: Ûtilisation BDD - JWH Smith - 20-11-2011 Le sel n'est pas défini dans un fichier, sinon il n'aurait pas grand intérêt... C'est enregistré dans le champ "salt" de l'utilisateur, comme je l'ai dit plus haut. RE: Ûtilisation BDD - Malak - 20-11-2011 oui oui ... mais je pense que mybb le definit a cette ligne la : Code PHP : $password = random_str(); ligne 936 de member.php RE: Ûtilisation BDD - JWH Smith - 20-11-2011 Il suffit de remonter un peu plus haut... Code PHP : if($mybb->input['action'] == "resetpassword") ... pour voir qu'il s'agit d'un code exécute pour le "mot de passe oublié", et non pour l'inscription. Et puis jusqu'à preuve du contraire, "password" veut dire "mot de passe", et non "sel".. Je ne vois pas pourquoi tu cherches son utilisation dans MyBB si tu veux l'utiliser sur un site web à part... Tu n'as qu'à récupérer le salt de l'utilisateur, crypter avec la fonction que je t'ai donné plus haut, et comparer avec le "password" de la base de données... RE: Ûtilisation BDD - Malak - 20-11-2011 Bref. Merci beaucoup Bonne soirée RE: Ûtilisation BDD - Malak - 21-11-2011 Bon je double post pour revenir vers vous, j'ai utilisé exactement la fonction que vous m'avez proposé mais je ne retombe pas sur les valeurs de la base de données. Code PHP : function debug($str) je vous ai mis le code ou ca coince, comme vous l'auriez compris, normalement, mon "script" est sensé à $password_changed qui est egal à $password_bdd SI le pass entré est correct ! Or Je tombe toujours sur une chaine de caractère différente. J'ai essayé de trouver l'endroit dans mybb ou ils enregistre leur mot de passe, que je vois la fonction utilisé ou la méthode, mais en vain, je n'ai pas trouvé :/ Peut-etre pourriez-vous, a nouveau, m'éclairer ? RE: Ûtilisation BDD - Malak - 22-11-2011 Pour information, j'ai trouvé la fonction correcte : Code PHP : /* RE: Ûtilisation BDD - JWH Smith - 22-11-2011 La fonction de salt que j'ai donné est celle de MyBB 1.4.8. Je n'ai pas vérifié les changements dans les versions plus récentes. |