MS-DOS_1991 Posté 8 Mars 2005 Posté 8 Mars 2005 Bonjour, Avant tout, je ne suis qu'un collégien débutant, donc svp, soyez patient avec moi Voila. Je suis en train de faire mon site web et aimerais vérifier systématiquement les mots de passe de mes utilisateurs. J'ai entendu parler de la fonction php crack(): [crack_opendict(), crack_check(), crack_closedict(), etc.]. Je voudrais savoir ce qu'elle vaut, où trouver une version stable pour Windows (j'ai essayé mais c'est super compliqué), et comment construire un dictionnaire de mots à partir d'un simple fichier texte (1 mot par ligne) ? Merci d'avance pour vos réponses.
maximettb Posté 8 Mars 2005 Posté 8 Mars 2005 A mon humble avis, ce doit être exactement la même verification que les mots de passe des systèmes UNIX. A savoir contrôle sur la longueur, la diversité lettres/chiffres et contrôle dans dictionnaire. Au sujet des dictionnaires, c'est simplement un fichier texte avec un mot par ligne. Bonne chance pour la suite!
Anonymus Posté 8 Mars 2005 Posté 8 Mars 2005 La fonction 'crack' est utile pour 'cracker' un mot de passe. Donc, officiellement, pour tester si un mot de passe est 'solide', ou facile à trouver. De plus, il faut que le serveur soit configuré pour utiliser les fonctions 'crack'. Pour tester si des utilisateurs entrent le bon mot de passe, il n'y a pas de fonctions prédéfinies. Il faut juste faire un test, avec des variables de session, ou autre. Il y a des discussions, dans le forum, sur les espaces membres.
MarvinLeRouge Posté 8 Mars 2005 Posté 8 Mars 2005 Petit truc : ne stocke JAMAIS des mots de passe en clair. Tu les cryptes, tu les stockent cryptés. Quand on te saisit un mot de passe, tu le crypte et tu compares.
Thanh Posté 9 Mars 2005 Posté 9 Mars 2005 (modifié) Petit truc : ne stocke JAMAIS des mots de passe en clair.Tu les cryptes, tu les stockent cryptés. Quand on te saisit un mot de passe, tu le crypte et tu compares. <{POST_SNAPBACK}> Je faisais toujours ça puis quelques réflexions me sont venus à l'esprit et également des contraintes clients. Les contraintes tout d'abord : certains clients EXIGENT d'avoir un système renvoyant le mot de passe. Puis la réflexion: tu cryptes pourquoi? pour empêcher toi même de voir le mot de passe? car si un hacker est déjà dans ta base pour lire le mot de passe, tu peux être sûr qu'il est pas loin de pouvoir tout faire à d'autres niveaux. Alors si vraiment pour une question d'éthique tu veux empêcher tes yeux de lire sans faire exprès, passes juste un petit coup d'encodage base 64 Modifié 9 Mars 2005 par solo
lafosca Posté 9 Mars 2005 Posté 9 Mars 2005 Je faisais toujours ça puis quelques réflexions me sont venus à l'esprit et également des contraintes clients. Les contraintes tout d'abord : certains clients EXIGENT d'avoir un système renvoyant le mot de passe. Puis la réflexion: tu cryptes pourquoi? pour empêcher toi même de voir le mot de passe? car si un hacker est déjà dans ta base pour lire le mot de passe, tu peux être sûr qu'il est pas loin de pouvoir tout faire à d'autres niveaux. Alors si vraiment pour une question d'éthique tu veux empêcher tes yeux de lire sans faire exprès, passes juste un petit coup d'encodage base 64 <{POST_SNAPBACK}> Le hacker verra de fait un truc comme gfdhg5454q6gf5d64g6df mais qui sera dur à déchiffrez, si pas impossible avec un md5. Pour retrouver le mot de passe, moi j'en genere un new, qui s'envoit par email et se modifie en md5 tjrs celui de la base. Par après, tu laisse un form pour modifier les info perso dans la zone membre où il peut re mettre son mdp favoris.
MarvinLeRouge Posté 9 Mars 2005 Posté 9 Mars 2005 D'accord avec Lafosca : Je n'ai encore jamais vu aucun client qui exige de pouvoir récupérer son mot de passe. Ce que j'ai déjà vu, c'est des clients qui exigent de pouvoir récupérer UN mot de passe valable s'ils perdent le leur, ce qui n'est pas pareil. Il suffit alors d'utiliser la méthode indiquée par Lafosca : tu génères un nouveau mot de passe, tu l'envoies au client, et tu stockes le nouveau crypté dans la base. Et libre au client de modifier son pass s'il le souhaite.
Portekoi Posté 9 Mars 2005 Posté 9 Mars 2005 Re, Pareil pour moi, je stock en MD5 tous les mots de passe et en génère un nouveau en forcant l'utilisateur à le changer par le sien. Dans une boite où j'ai bossé, le mec était tout fier de me montrer son schéma de base de donnée. Hormis le fait qu'il était banqual, le mec stockait le mot de passe crypté ... et décrypté dans la même table Y a des fois je vous jure... ++ Portekoi
maximettb Posté 9 Mars 2005 Posté 9 Mars 2005 Dans une boite où j'ai bossé, le mec était tout fier de me montrer son schéma de base de donnée. Hormis le fait qu'il était banqual, le mec stockait le mot de passe crypté ... et décrypté dans la même table <{POST_SNAPBACK}> Incroyable! vous utilisez plutôt MD5 ou la fonction Password de MySQL ?
Anonymus Posté 9 Mars 2005 Posté 9 Mars 2005 En fait, le client rentre son mot de passe dans l'interface d'admin. Il est facile de le lui renvoyer sous forme visible. le mot de passe qui est dans la base ne doit effectivement pas être visible. Si les risques devaient se limiter au client et au développeur, ils seraient bien minces. Seulement, en général, ils sont tout de même beaucoup plus importants. Le fait que le client ait à entrer son mot de passe est normal, et le fait que le client se voit renvoyer un mot de passe en cas d'oubli du sien est normal et suffisant. Par contre, il demande peut etre à voir les mots de passe de ses clients, et ca, ce n'est pas sain. la méthode utilisée par php pour calculer, controler et retourner un mot de passe est... quasiment impossible à cracker. Si un hacker entre dans ta base, alors il n'aura que des mots de passe inutilisables. C'est déjà un pas de franchi. Les protections sont un peu comme des escaliers, qu'il faut gravir marche après marche, et ceci en est une.
MS-DOS_1991 Posté 9 Mars 2005 Auteur Posté 9 Mars 2005 Bonjour, J'ai réessayé avec un truc tout simple mais ça ne marche pas: <?php/* Ouverture du dictionnaire CrackLib */$dico = crack_opendict("dictionnaire_fr_1.txt");$mot_de_passe = "abandonner";/* Vérification du mot de passe */$check = crack_check($dico, $mot_de_passe);$message = crack_getlastmessage();echo $message;/* Fermeture du dictionnaire */crack_closedict($dico);?> pour le script (simplifié bien entendu ) et comme dico un truc du genre: Aaronabaisséabaissementabaisserabandonabandonnantabandonneabandonnéabandonnéeabandonnéesabandonnentabandonnerabandonnésabasieabasourdiabasourdirabasourdissementabat-jourabatsabattageabatteurabattoirabattreabattuabattusabbatialabbayeabbéabbesseabcabcéderabcèsAbdelabdicationabdiquerabdomenabdominalabécédaireabeilleaberaberrantaberrationabêtirabhorrerAbidjanabîmeabîmerabjectabjectionabjurerablationaboiementaboliabolirabolitionabolitionnismeabolitionnisteabominationabominerabondammentabondanceabondantabondanteabonnéabonnéeabonnementabonnementsabonnerabonnésabordabordableabordageabordeabordéaborderabordésabordsaborigèneaborigènesabortifaboutaboutiaboutiraboutiraitaboutissementaboutissentaboutitaboyerabracadabrantabrasifabrasionabrasiveabrégéabrégéeabrégerabreuverabréviationabréviationsabriabricotabricotierabriteabritéabriterabrogerabruptabrutiabsenceabsentabsenteabsentéismeabsentsabsintheabsoluabsolueabsolumentabsolutionabsolutismeabsorbéabsorberabsorptionabsoudreabstentionabstentionsabstenuabstenusabstinenceabstractionabstraitabstraiteabstraitementabstraitsabsurdeabsurdementabsurditéabusabuserabusifabusiveabyssinAbyssinAbyssineAbyssinieabyssinienAbyssinienAbyssinienneacaciaacadémicienacadémieAcadémieacadémiesacadémiqueacadémiquesacadémismeacajouaccablantaccableraccalmieaccèdeaccédéaccéderaccélérationaccéléréaccéléréeaccéléreraccentaccentsaccentuationaccentueaccentuéaccentueracceptableacceptaitacceptantacceptationaccepteacceptéacceptéeacceptéesacceptentaccepteraccepteraitaccepterontacceptésacceptionaccèsaccessibleaccessiblesaccessionaccessoireaccessoirementaccessoiresaccidentaccidentéaccidentelaccidentsacciseacclamationacclameracclimatationacclimatementaccommodationaccommoderaccompagnantaccompagneaccompagnéaccompagnéeaccompagnéesaccompagnementaccompagnentaccompagneraccompagnésaccompliaccomplieaccompliraccomplisaccomplissementaccomplitaccordaccordaitaccordantaccordeaccordéaccordéeaccordéesaccordentaccordéonaccordéonisteaccorderaccordésaccordeuraccordsaccoreaccosteraccouchementaccoucheraccoucheuseaccrochéaccrocheraccroissementaccroîtreaccruaccrueaccruesaccrusaccueilaccueillantaccueilleaccueillentaccueillera ... je précise que dans le vrai dico, il y a 22 708 lignes Quelqu'un aurait-il une idée ?
Anonymus Posté 9 Mars 2005 Posté 9 Mars 2005 Tu veux vraiment tester la solidité d'un mot de passe ?? As tu la configuration de ton serveur qui te permette de te servir de la librairie 'crack' ?
MS-DOS_1991 Posté 9 Mars 2005 Auteur Posté 9 Mars 2005 Tu veux vraiment tester la solidité d'un mot de passe ?? As tu la configuration de ton serveur qui te permette de te servir de la librairie 'crack' ? <{POST_SNAPBACK}> En fait je veux que lors de l'inscription de mes futurs utilisateurs (j'espère qu'il y en aura ), un script php compare le mot de passe avec un fichier (du meme type que celui que j'ai affiché plus haut à savoir un mot par ligne) et qu'il affiche un message d'erreur si le mot de passe a été trouvé dans le fichier (c'est donc que le mot de passe est trop faible) Je tourne sous EasyPhp 1.7 et j'ai activé l'extension depuis l'icone de la barre des taches "configuration" -> "Extensions PHP". P.S: Merci de m'avoir répondu
Thanh Posté 9 Mars 2005 Posté 9 Mars 2005 En fait ce que je voulais dire : si le hacker est déjà dans ta base, il va pas se gêner pour aller plus loin et foutre le zouk.
Portekoi Posté 9 Mars 2005 Posté 9 Mars 2005 Lu, Pour moi, crypter les mots sert surtout à éviter tout danger si le "hacker" fais une injection Sql. Par exemple, vous passez de page en page un "Id_page". Si vous ne protégez pas votre "main", on peut facilement injecter une requete (avec un "Union" par exemple) pour que, au lieu de sortir le titre d'un article, c'est le mot de passe d'un membre qui sors Donc s'il est crypté... ben il pourra aller se brosser ++ Portekoi
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant