Rechercher : dans
Par :

Crypter le mot de passe de MySQL ou pas ?

Dernière réponse le 21 aoû 2008 à 15:27:57 le_boss, le 21 aoû 2008 à 11:55:27 
 Signaler ce message aux modérateurs

Bonjour,

Tout est dans le titre, j'ai vaguement entendu parler de crypter le mot de passe de MySQL dans les sripts php, mais je me demande si c'est bien utile, puisque le code php n'est pas visible...

Pouvez-vous éclairer ma lanterne de newbie, svp ? ;-)

Merci

1

OrionS, le 21 aoû 2008 à 11:57:50

Bonjour,

Il est toujours préferable de crypter un mot de passe lorsqu'il est stocké dans une base de données.
en php tu peux utiliser le MD5.

$motdepasse = MD5("le mot de passe en clair");

Répondre à OrionS

2

absurdsystem, le 21 aoû 2008 à 11:58:16

Slt,

moi aussi je me demandai l'interet de faire ça ....

Pour moi ça fai une protection en plus si jamais on arrive a accéder à ta base de données par exemple.

Répondre à absurdsystem

3

ghuysmans99, le 21 aoû 2008 à 11:58:59

T'as pas tout à fait tort de te poser la question.
Et de toutes façons, celui qui arrive à rentrer dans ton serveur peut rapatrier ce/ces fichiers pour trouver le mot de passe.
Donc ... inutile, à mon sens. VB.NET is good ... VB6 is better !

Répondre à ghuysmans99

4

MrSlave, le 21 aoû 2008 à 12:01:19

Bah si c'est utile.

Un utilisateur malveillant peut récupérer les données transitant entre ton site et ta BD. Donc si tes données sont en clair, il pourra provoquer de gros dégats.
Alors que si tes données sont cryptées. Même si il les récupère, elles ne seront pas exploitables. ;) MrSlave, l'esclave de ces demoiselles !

Répondre à MrSlave

5

le_boss, le 21 aoû 2008 à 13:29:18

Attention, je parle ici du mot de passe que l'on insère dans la ligne de connexion à MySQL:

mysql_connect("tutu", "toto", "mot_de_passe_de_fou");

Je me fous pas mal qu'un éventuel pirate puisse lire le contenu de la BDD, de toute façon, le but est d'afficher ce contenu sur le site.

Ce que je veux éviter, c'est que le pirate puisse lire mon mot de passe dans la ligne ci-dessus, ce qui lui permettrait de faire tout ce qu'il veut à ma BDD.

Répondre à le_boss

6

BlackDrag00n, le 21 aoû 2008 à 13:33:30

Pas la peine car le script pour accedez a ta base de donnée ce trouve sur ton serveur et donc il n'y a pas de donnée qui transite pas le web.

ton script s'execute sur le serveur et se connect a la base de donnée sur le serveur, et comme dit plus haut la source d'une page n'affiche pas le php donc n'affichera pas les infos pour ce connecter a ta BDD ;)

Répondre à BlackDrag00n

7

Dr Zoidberg, le 21 aoû 2008 à 13:54:01

La serveur Mysql n'est pas forcement sur la même machine que le serveur Web.
De toute façon mysql_connect prend un paramètre mot de passe en clair, il faudra donc le décrypter avant de lui passer. Donc comme il a déjà été dit, ca ne sert à rien de le crypter dans le script.

Répondre à Dr Zoidberg

8

BlackDrag00n, le 21 aoû 2008 à 14:02:40

Oui mais dans le cas présent la BDD n'est pas sur une autre marchine que sur le serveur web :)

Répondre à BlackDrag00n

9

le_boss, le 21 aoû 2008 à 14:10:38

Dans mon cas, effectivement, la BDD est sur le même serveur que le site.

Mais je suis heureux d'apprendre que cela n'est pas forcément le cas... ça veut dire que si j'ai un hébergement gratuit un peu miteux qui ne met pas ou pas assez de BDD à disposition, je peux contourner le problème en faisant appel à des bases de données situées sur mon serveur web perso à la maison. (a moins que cela ne ralentisse trop le fonctionnement de mon site, qu'en pensez-vous ?)

Répondre à le_boss

10

Dr Zoidberg, le 21 aoû 2008 à 14:16:01

Oui ça ralentirai nécessairement car tes données passeraient deux fois par internet :
client <----> serveur web <----> serveur bd au lien d'une seule
, et en plus tu exposerais ton serveur de bd 'au monde'.

Répondre à Dr Zoidberg

11

ShadowRevenge, le 21 aoû 2008 à 14:22:20

Si tu as un hebergement miteux comme tu dis, si quelqu'un fait peter ton serveur il aura acces aux fichiers, et donc a ton mot de passe mysql, meme si ta base est sur un autre serveur ^^
Et de toute façon c'est simple tu ne peux pas crypté le mot de passe dans la fonction mysql_connect, la seule solution que tu as c'est de crypté l'ensemble des données qui transitent en utilisant du https par exemple, mais bon si tu veux mon avis ca vaut pas le coup :)

Répondre à ShadowRevenge

12

le_boss, le 21 aoû 2008 à 14:31:17

"De toute façon mysql_connect prend un paramètre mot de passe en clair"

ben alors, pas de solution (hormis le SSL, mais ça je crois que je vais pas m'y lancer ^^) pour éviter que le premier apprenti pirate venu me hacke mon joli p'tit site ? sgnirffll

comment y font les sites sans SSL (et y en a des tas) pour pas se faire hacker leur truc, alors ?

Répondre à le_boss

13

ShadowRevenge, le 21 aoû 2008 à 14:35:18

Un hack résulte rarement d'un manque de cryptage sur un site, mais plus souvent d'une faille dans la programmation PHP, ou dans la rigueur de programmation en général.

Répondre à ShadowRevenge

14

Dr Zoidberg, le 21 aoû 2008 à 14:46:58

En résumé :
- Le code PHP n'est jamais visible du client (sauf erreur du développeur ou de l'admin du serveur)
- Le lien réseau entre serveur Web et serveur BD est soit inexistant (même machine) soit sur un réseau privé, soit le serveur BD n'accepte des connexions que des IP des serveurs web associés.

Répondre à Dr Zoidberg

15

 le_boss, le 21 aoû 2008 à 15:27:57

Oki merci pour toutes vos réponses

m'en vais laisser mon mysql_connect tel quel et me gaffer à composer des scripts "secure" et les tester à fond avant la mise en production !

Répondre à le_boss