Forum de discussion
Forum « Programmation PHP » (archives)
Re: mot de passe avec .htaccess
Envoyé: 2 juillet 2004, 10h15 par Oznog
Il y a plusieurs solution, et même plusieurs avec des fichiers, mais le fichier aura toujours le même rôle, c'est à dire stocker et récupérer le mot de passe. Alors ou bien tu le sauve sous la recine du serveur ou bien tu encode, idéallement MD5 ou autres "hasing".
Bon, sans MySql s'est assuréement un fichier. Maintenant un XML?, Un simple fichier text? un csv? Toute ces réponses sont bonne. Mais quant à moi et compte tenu du contrôle restreint (1 admin ou x autre(s)) j'irais vers le fichier ".htaccess". En autant que tu ne soit sur un serveur Window, sous Linux ou Unix (généralement le cas en PHP).
Ce fichier permet d'identifier des "usager", jumelé avec le fichier ".htpasswd" tu peux gérer les mots de passe. Par contre, tu va probablement devoir contacter l'administrateur de ton serveur pour sont installation. En principe une autorisation est requise maintenant. Sinon, c'est possible manuellement d'encoder et de transférer sur le serveur en mode "Binary".
Tu trouvera partout des encodeur sur le Web (exemple : http://www.magsys.co.uk/apps/. Mais sache que c'est une fonctionnalité du serveur (apache par exemple) et non pas du PHP, bien que le PHP ai aussi des outils pour (http://www.zend.com/codex.php?CID=246).
Et attention, c'est un standard de hashing. Mais rien ne t'empèche de le simuler manuellement, le hashing est une technique pas un scriot en soit. Tu peux gérer ça aussi comme un simple fichier texte si tu veux, en autant cette fois que tu ai l'accès à l'écriture sur le fichier. Voir un code complet ici (http://www.glodev.com/script_view.php?ScriptID=45).
p.s. le hashing st une méthode qui consite à encoder une chaîne de façon à ne pouvoir la décoder. Même celui qui l'a créé ne peut la décoder! C'est un encodage à sens unique. Or donc le principe est de comparer une chaîne encodé avec un autre elle aussi encodé par la même formule. peut importe laquelle d'ailleurs. Si les deux sont pareil ça veux dire que le mot de passe est le même et l'encodage aussi. Mais si tu encode l'un avec par exemple un MD4 et l'autre par un MD5, ça ne va plus. En principe, même si tu connait la formule, c'est le cas par exemple pour le MD5, c'est impossible de récupérer le mot de passe. Même pour le hacker le plus performant, si le mot de passe réel est seulement dans ta tête bien sûr et que la connexion utilisée est SSL!
Car n'oublie pas qu'il doit, suite à sa saisie HTML, passé public sur la requète HTTP! Pour contrer ce dernier problème il n'y a que deux solutions, le serveur SSL ou le protocole HTTPS, OU ENCORE tu peux le hasher localement en Javascript et ainsi faire manuellement un serveur SSL tout aussi sécuritaire!.
Voilà, ça fait le tour.
Ciao
Oznog
Réponses
|