Comparaison de mot de passe mysql/php - PHP - Programmation
Marsh Posté le 26-07-2007 à 18:25:17
Salut,
Pourquoi tu ne crypte pas ta valeur et tu fais ta comparaison dans ta requête ? C'est bien plus simple et plus sécurisé.
A l'origine MySQL ne crypte pas les mots de passe. Vérifie que le type de ton champs est une chaine de caractère. A mon avis tu dois te tromper quelque part.
Marsh Posté le 26-07-2007 à 19:10:51
Peut être il y a-t-il un champ de type password dans mysql??
Marsh Posté le 26-07-2007 à 19:45:06
ULK- a écrit : |
Dans ce cas, c'est plutôt à phpmyadmin qu'il faudrait poser la question.
Il utiliserait pas la fonction password() de Mysql par hasard ?
Marsh Posté le 27-07-2007 à 09:47:37
Merci pour les réponses
Si je comprend, il faudrais que je teste avec ce type de requete :
SELECT * FROM user WHERE user = '".$login."' AND password = PASSWORD('".$password."')
Ou je me trompe...
Marsh Posté le 27-07-2007 à 10:15:49
Oui l'idée c'est ça
Mais je te conseillerais de crypter tes mots de passe en md5
Marsh Posté le 27-07-2007 à 10:20:56
ULK- a écrit : Merci pour les réponses |
Attention, si les magic_quotes_gpc sont pas activée, t'as une énorme faille de sécurité. utiliser mysql_real_escape_string() autour de $login
Marsh Posté le 27-07-2007 à 11:18:23
>Alphazone, tu veux dire avant de les insérer ? a la création de l'utilisateur ?
J'imagine que phpmyadmin le fait, faudrais voir ce qu'il fait, lors de l'ajout d'un utilisateur, j'avais parcouru ces fichier pour voir, mais j'avoue m'y être un peu perdu.
>FlorentG, Merci, elle ne sont effectivement pas activée en vue de php6, j'ai utilisé addslashes après chaque récupération de variable $_POST, ça dois le faire non ?
edit : voici ma fonction qui a l'air de fonctionner, mais je suis ouvert a vos remarques :
Code :
|
Marsh Posté le 27-07-2007 à 12:42:50
ULK- a écrit : >Alphazone, tu veux dire avant de les insérer ? a la création de l'utilisateur ? |
Yes !
Marsh Posté le 27-07-2007 à 12:48:16
Encode ton mot de passe en md5 a la création :-) du genre md5($mdp). Puis après tu fais ta verif sur md5($mpd_util) par rapport à celui qui est dans la BDD.
Ca marche plutot bien, et c'est "relativement" fiable =)
Marsh Posté le 27-07-2007 à 12:49:57
Notez que pour des mots de passes simples (style [a-zA-Z0-9]), md5 n'est plus très fiable. Moi j'utilise sha256
Marsh Posté le 27-07-2007 à 14:31:16
FlorentG > T'utilises quoi pour obtenir un sha256 avec un site en php?
Marsh Posté le 27-07-2007 à 15:22:45
FlorentG a écrit : Notez que pour des mots de passes simples (style [a-zA-Z0-9]), md5 n'est plus très fiable. Moi j'utilise sha256 |
Pourrais-tu donner un peu plus de détail ?
Marsh Posté le 27-07-2007 à 15:26:49
AlphaZone a écrit : |
Y'a plein de site, style md5.rednoize.com ou d'autres qui te retrouvent soit l'orgine, soit une collision avec des md5
Marsh Posté le 27-07-2007 à 15:28:08
Merci pour le lien. Je ne connaissais pas
Marsh Posté le 27-07-2007 à 16:26:33
Autre question :
Lorsque j'ai un champ formulaire du type :
Code :
|
Ce qui donne ' Boite "GE" ', a l'affichage.
Je recupere, la variable avec $_POST['boites']
Le truc c'est que cette variable a pour valeur ' Boite "GE" ', alors que pour moi elle devrais avoir pour valeur ' Boite "GE" ' (cad la valeur de value en html)
Un traitement est donc effectué, entre la valeur dans value, et la recuperation de la variable
Un traitement comme html_entities_decode
Est ce que ce que je dis est exact ? Et si oui comment ne pas dépendre de ce traitement automatique ?
Marsh Posté le 27-07-2007 à 16:39:02
C'est exact, et il n'y a rien à faire... Ou alors faut doublement échapper la variable, mais ça fait chelou
Marsh Posté le 29-07-2007 à 13:17:24
il y a aussi la fonction crypt de PHP qui est assez intéressante puisque le résultat n'est pas toujours le même, c'est ce que j'utilise
Marsh Posté le 29-07-2007 à 13:43:45
FlorentG a écrit : hash('sha256', $pouet); |
Perso je rajoute un "grain de sel", au sha , ça ajoute une bonne dose de sécu.
Code :
|
Marsh Posté le 26-07-2007 à 16:19:11
Bonjour,
Je cherche a donner accès a des rubriques de mon site en fonction des droits des utilisateur sur ma base Mysql
Par exemple si la personne avec les droits UPDATE se logue, elle aura accès aux rubrique de modifications
J'ai donc un formulaire avec login/mot de passe
Puis je teste l'ensemble de cette façon :
Le soucis c'est au niveau de ma comparaison de mot de passe, ça n'est jamais égal, car mysql crypte les mot de passe (un truc genre a1dc91c907325c )
Je voulais donc crypter la valeur de $password avant la comparaison, avec les fonction php, mais que ça soit avec md5($password), sha1($password) les chaines ne sont jamais égales.
Je précise que j'ajoute les utilisateurs et mot de passe en passant par phpmyadmin