En cas de piratage, il y a à la base au moins deux conséquences possibles :
A. Le site est attaqué, détruit, altéré et les dégâts se limitent au site lui-même.
B. La base de données est récupérée et le pirate s'attaque aux membres qui utilisent le même mot de passe partout.
Le MD5 est là pour éviter que le piratage se propage jusqu'aux membres, c'est-à-dire qu'il s'agit d'une protection contre la conséquence B.
Christele a écrit :
est'il plus embétant qu'un mot de passe d'un abonné soit trouvé,
ou tout bétement le mot de passe de connection a mysql soit lu ...
Tout dépend du niveau de sécurité mis en place. Le plus embêtant est évidemment que le mot de passe à la base de données soit connu, car cela implique alors que le pirate peut avoir accès à la base de données, donc aux enregistrements des tables, donc aux mots de passe des membres. C'est donc une judicieuse et juteuse raison, encore une fois, de masquer/chiffrer les mots de passe des membres.
Christele a écrit :
même s'il est bien que caché, il est en clair dans un include
La différence est que pour lire le mot de passe de la base de données elle-même, il faut avoir accès au système de fichiers du serveur, contrairement aux mots de passe DANS la base de données qui peuvent être récupérés s'il y a une moindre faille SQL dans le site. Accéder au système de fichiers via une faille SQL demande quand même un peu plus de compétences et une configuration serveur bien particulière.
Je pense comprendre où tu veux en venir, même si je n'en suis pas sûr. Tu te demandes pourquoi on s'acharne à chiffrer les mots de passe des membres, et qu'on ne chiffre pas le mot de passe de la base de données elle-même? Pour y répondre, je vais prendre quelques exemples :
- Si un pirate arrive à accéder au code source du fichier contenant le mot de passe de la base de données, cela implique qu'il y a de fortes chances qu'il a déjà accès à l'ensemble des fichiers du serveur, incluant les fichiers de la base de données. Le mot de passe n'est donc plus vraiment nécessaire pour récupérer les données de la base de données. Son chiffrement serait inutile
- Si on chiffre le mot de passe de la base de données pour éviter que l'équipe de développement le voie, c'est un non-sens , car l'équipe doit de toute façon accéder à la base de données pour travailler
En Coldfusion par exemple, je ne fait qu'indiquer le nom de la datasource dans mes requêtes. En aucun temps les identifiants de la base de données sont dans les fichiers du site. Ils sont gérés via une interface d'administration, elle-même protégée par mot de passe chiffré. Il y a sans doute une possibilité de le faire aussi dans PHP si on souhaite réellement ne pas afficher en clair le mot de passe de la base de données dans un include.
Dans le même ordre d'idées, pour les grandes structures, c'est fortement possible que tous les fichiers entiers soient chiffrés, que ce soit les mots de passe ou le code source lui-même.
Christele a écrit :
Et aprés quand je vois avec horreur le nombre de site ou le mot de passe
de phpmyadmin est damandé tout bétement dans mon_site.com/phpmyadmin/
alors OUI ce mot de passe devrais étre haché mais justement c'est pas possible !
Je n'utilise ni PHP, ni phpmyadmin, alors je ne suis pas sûr de comprendre ce que tu veux dire par là.
En conclusion, même si un moyen de sécurité n'est pas infaillible dans tous les scénarios possibles, ça ne veut pas dire qu'il est futile, et même si une information est moins sensible qu'une autre, ça ne veut pas dire de se priver de la protéger.
Troll-à-Florent-V-qui-n'aime-pas-les-analogies a écrit :
Ce n'est pas parce qu'on peut casser les cadenas qu'il faut arrêter d'en mettre!
Modifié par Tony Monast (22 Mar 2010 - 21:19)