Mot de passe en clair dans mysql_connect()

Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

franck05
WRInaute discret
WRInaute discret
 
Messages: 110
Enregistré le: 30 Nov 2003

Mot de passe en clair dans mysql_connect()

Message le Mer Juin 28, 2006 16:28

Bonjour,

Afin de sécuriser mes connections avec ma base de données je voudrais savoir si il est possible de ne pas écrire en clair mon de passe de base de données dans la commande mysql_connect($host, $user,$passwd)
dans mes fichiers ? ou alors avec une ruse de siou ?

D'avance merci pour votre aide


dd32
Modérateur
Modérateur
 
Messages: 3442
Enregistré le: 9 Sep 2005

Message le Mer Juin 28, 2006 17:04

http://www.commentcamarche.net/php/phpbdd.php3
Rappel: Les variables ne sont pas visibles par vos visiteurs étant donné que le script (portant l'extension .php) est systématiquement interprété par le serveur Web

enfin, y'a peut-être une astuce...mais c'est plutôt ce qu'il y a autour qu'il faudrait contrôler :
http://www.phpsecure.info/v2/article/php-security.php

pour éviter d'arriver à ce genre de chose :
<?
copy("page.php","page_source.txt");
?>
Il suffit maintenant à l'attaquant de consulter le fichier page_source.txt pour récupérer vos mots de passe d'administration de MySQL.
voir le reste de la commande sur le lien cité ci-dessus...


Xou
WRInaute discret
WRInaute discret
 
Messages: 187
Enregistré le: 2 Juin 2006

Message le Mer Juin 28, 2006 18:08

Bonjour,

il suffit de crypter tes mots de passe en MD5 ! ;)


dd32
Modérateur
Modérateur
 
Messages: 3442
Enregistré le: 9 Sep 2005

Message le Mer Juin 28, 2006 18:47

oui mais dans ce cas, tu copies le mot de passe (qui aura été crypté en md5 au préalable en dehors du code) en dur dans ton code sachant ceci :
http://www.npds.org/viewtopic.php?topic=14039&forum=12 ? certes c'est plus secure mais bon discutable.
Modifié en dernier par dd32 le Mer Juin 28, 2006 18:49, modifié 1 fois.

franck05
WRInaute discret
WRInaute discret
 
Messages: 110
Enregistré le: 30 Nov 2003

Message le Mer Juin 28, 2006 18:49

merci pour vos réponse :)

en fait c'est pas pour protéger des visiteurs mais des développeurs (cf. loi Sarbanes & Oxley)

le md5 je sais pas si ça fonctionne car dans mysql les mots de passe sont chiffrés avec une fonction qui est PASSWORD...

quelques tests s'imposent, mais bon c'est pas gagné :?


dd32
Modérateur
Modérateur
 
Messages: 3442
Enregistré le: 9 Sep 2005

Message le Mer Juin 28, 2006 18:51

Avec mysql y'a la fonction MD5() aussi... mais là n'est pas la question car il s'agit du mot de passe de la bdd, pas d'un mot de passe utilisateur... ou j'ai rien compris ??
Comment tu fais pour comparer avec la bdd si le mot de passe de connexion à la bdd est ok sans être au préalable connecté à cette même bdd pour récupérer le bon mot de passe ? :p

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Enregistré le: 16 Jan 2004

Message le Mer Juin 28, 2006 19:02

Tu le met en clair dans un fichier conf.php, lui même dans un répertoire data. dans .htacess, tu met deny from all.

Ainsi, suel une page du domaine peut appeler le fichier. et il est invisible pour tout le monde.

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2286
Enregistré le: 25 Oct 2005

Message le Mer Juin 28, 2006 19:52

Ce n'est pas ce qu'il demande.

Mais je ne pense pas que cela est possible mis à part modifier et recompiler php pour que la fonction mysql_connect connaisse elle-même le code.
Mais le problème sera le même. Le mot de passe est inutile dès que l'on a la possibilité d'utiliser des requetes sur la base.

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Enregistré le: 27 Avr 2006

Message le Mer Juin 28, 2006 19:55

dd32 a écrit:Avec mysql y'a la fonction MD5() aussi... mais là n'est pas la question car il s'agit du mot de passe de la bdd, pas d'un mot de passe utilisateur... ou j'ai rien compris ??
Comment tu fais pour comparer avec la bdd si le mot de passe de connexion à la bdd est ok sans être au préalable connecté à cette même bdd pour récupérer le bon mot de passe ? :p


C'est simple, tu hash ton mot de pass mysql en md5(), puis tu créer un script php pour le "casser", puis ensuite tu te connecte à mysql

Ralala, que vous etes betes :roll:


dd32
Modérateur
Modérateur
 
Messages: 3442
Enregistré le: 9 Sep 2005

Message le Mer Juin 28, 2006 20:37

Zim' a écrit:C'est simple, tu hash ton mot de pass mysql en md5(), puis tu créer un script php pour le "casser", puis ensuite tu te connecte à mysql

Ralala, que vous etes betes :roll:

Certes, bête je suis :lol: mais je n'en voyais pas l'intérêt car j'avais zappé cette ligne :
franck05 a écrit:en fait c'est pas pour protéger des visiteurs mais des développeurs
maintenant je comprends mieux...:wink:

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Enregistré le: 27 Avr 2006

Message le Mer Juin 28, 2006 22:10

Moi je dis, vous hackez le serveur de la NSA pour crypter votre CS et le contenu de votre base de donnée, que vous encryptez ensuite avec un algo à vous, et vous diffusez le tout en morse via un flux mp3 en streaming...


dsl... mais le topic me parait tellement inutile...

sebnutt
WRInaute passionné
WRInaute passionné
 
Messages: 1308
Enregistré le: 10 Déc 2003

Message le Mer Juin 28, 2006 22:57

Grantome a écrit:Tu le met en clair dans un fichier conf.php, lui même dans un répertoire data. dans .htacess, tu met deny from all.

Ainsi, suel une page du domaine peut appeler le fichier. et il est invisible pour tout le monde.

ou encore un fichier .htconf auquel seul a accès le root et personne via le web...

franck05
WRInaute discret
WRInaute discret
 
Messages: 110
Enregistré le: 30 Nov 2003

Message le Ven Juin 30, 2006 9:20

Moi je dis, vous hackez le serveur de la NSA pour crypter votre CS et le contenu de votre base de donnée, que vous encryptez ensuite avec un algo à vous, et vous diffusez le tout en morse via un flux mp3 en streaming...


dsl... mais le topic me parait tellement inutile...


oui toi aussi tu m'as l'air assez inutile :D
sais tu au moins ce qu'est Sarbanes et Oxley, et as tu réellement compris la problématique ? si c'est non, vas jouer aux billes

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Enregistré le: 27 Avr 2006

Message le Ven Juin 30, 2006 17:50

non je sais pas ce qu'est sarbanes et oxley, mais oui j'ai bien compris la problématique... et j'vois surtout un probleme la ou il n'yen a pas vraiment...

Sinon, dis moi ce qu'est sarbanes et oxley, j'me coucherai moins con... ou alors j'vais jouer aux billes.

franck05
WRInaute discret
WRInaute discret
 
Messages: 110
Enregistré le: 30 Nov 2003

Message le Ven Juin 30, 2006 18:06

justement pour comprendre la problématique faudrait peut etre savoir ce qu'est SARBOX, pour savoir : google est ton amis :lol:


Genzo
WRInaute impliqué
WRInaute impliqué
 
Messages: 982
Enregistré le: 18 Juin 2004

Message le Ven Juin 30, 2006 18:24

franck05 a écrit:justement pour comprendre la problématique faudrait peut etre savoir ce qu'est SARBOX, pour savoir : google est ton amis :lol:


Sur qui je jette en premier des cailloux ??? Franck05 ou Zim ?

Google est ton AMI aussi... alors on se calme, on ouvre Google, et on cherche comment crypter un mot de passe dans le code PHP. Si on trouve pas du premier coup, on essaye d'affiner ses mots clés. Et si on y arrive pas, on peut demander de l'aide sur le forum, tout en restant aimable avec les gens qui [essayent] de t'aider.

Pour donner mon petit coté constructif à ce topic, j'avais déjà vu ce sujet sur le forum phpBB-fr, pour savoir comment crypter son mot de passe de connexion SQL dans le code de phpBB.

Enfin, pour Zim, si je t'envoie des cailloux, ils se transformeront en bisous :lol: :lol: ;) =====> [ ]

ortolojf
WRInaute accro
WRInaute accro
 
Messages: 2653
Enregistré le: 14 Aoû 2002

Message le Ven Juin 30, 2006 21:01

Comprend pas

Un simple script PHP dans un sous-répertoire ad hoc

../sous_repertoire/nom_du_script.php

Tu dponne au sous_repertoire la permission: lecture et exécution, et au script nom_du_script.php lecture et exécution:

chmod 404 sous_repertoire
chmod 404 nom_du_script.php

( dans le cas ou le Safe Mode est positionné et où le serveur PHP est compilé comme module, car l'utilisateur du script incluant le script nom_du_script.php , est le même que celui d'apache, et non pas celui de l'uitlisateur FTP; )

Ensuite, tu peux inclure ce fichier dans tous les scripts où tu as besoin des données d'identification, et puis tu déclare tes variables d'identification comme globales.

include("../sous_repertoire/nom_du_script.php");

global $bdd_url;
global $bdd_name;
global $bdd_user;
global $bdd_passwd;


Evidemment, dans tes instructions de connexion, tu utilises les variables...

Du moment que les varaiables sont dans un script PHP, elles n'apparaissent pas si quelqu'un se connecte sur ce script.

Evidemment, si ce script était un fichier texte, la basta t'es mort, mais que veut le peuple ? ;)

Amicalement.

Jean-François Ortolo

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Enregistré le: 27 Avr 2006

Message le Sam Juil 01, 2006 6:50

expldr Genzo

moi je dis: "Faisez gaffe aux pigeons"...

vous noterez que je suis casse couille....





oui j'avoue


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Enregistré le: 4 Oct 2002

Message le Sam Juil 01, 2006 10:31

Zim' a écrit:
dd32 a écrit:Avec mysql y'a la fonction MD5() aussi... mais là n'est pas la question car il s'agit du mot de passe de la bdd, pas d'un mot de passe utilisateur... ou j'ai rien compris ??
Comment tu fais pour comparer avec la bdd si le mot de passe de connexion à la bdd est ok sans être au préalable connecté à cette même bdd pour récupérer le bon mot de passe ? :p


C'est simple, tu hash ton mot de pass mysql en md5(), puis tu créer un script php pour le "casser", puis ensuite tu te connecte à mysql

Ralala, que vous etes betes :roll:


Tu fais comment pour retrouver ton mot de passe à partir d'un md5 ?
C'est un hashage avec perte d'information donc non bijectif.

ortolojf
WRInaute accro
WRInaute accro
 
Messages: 2653
Enregistré le: 14 Aoû 2002

Message le Sam Juil 01, 2006 11:14

Suede a écrit:
Zim' a écrit:Tu fais comment pour retrouver ton mot de passe à partir d'un md5 ?
C'est un hashage avec perte d'information donc non bijectif.



Bof...
S'il était possible de retrouver le mot de passe à partir du md5, à quoi servirait le md5 ?

Si tu penses que l'on peut avoir accès au contenu de tes scripts PHP, de toute façon, aucun cryptage ne sera efficace, car il sera toujours possible de disposer des données et du traitement pour les utiliser...

En fait, l'astuce de PHP, c'est que quand on veut charger le contenu d'un script PHP, ce n'est pas son contenu que l'on a, mais ce qu'il renvoie en HTML au navigateur. Ceci parce que le script PHP est interprété par l'interpréteur PHP du serveur Web.

Donc: La bonne et strictement seule solution pour cacher tes données ( ce n'est pas la peine ni possible de les crypter ), c'est de les mettre dans des scripts PHP.

Aussi simple que celà, et c'est l'enfance de l'art du programmeur PHP.

Il est vrai que je ne sais pas s'il est possible d'aspirer un fichier script PHP avec, par exemple, la fonction fopen($url,"r"); , avec comme variable $url l'url de ton script, mais je crois que là également, le contenu lu, est le contenu HTML renvoyé par le script.

Si je me trompe, merci beaucoup de me détromper.

En tout cas, la fonction file($url); qui est censée faire la même chose ( lecture de fichier ), rend bel et bien le contenu HTML, j'ai testé, alors...

Amcialement.

Jean-François Ortolo

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Enregistré le: 27 Avr 2006

Message le Sam Juil 01, 2006 11:30

euh, c'était du 50 eme degré...

puis notez que j'ai pas parlé de décrypté pas de "casser" le md5...

bref du second degré techniquement correcte niveau vocabulaire en plus ^^

mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Enregistré le: 3 Nov 2004

Message le Sam Juil 01, 2006 14:06

Y a absolument pas besoin de crypter son mdp dans une source php, parce que dans tous les cas, si le mec vous chope une page de code en clair, c'est généralement qu'il a réussi à introduire votre ftp, et que de toute facon, si vous avez un algo pour crypter, il vous en faut un pour décrypter, donc il tombera également sur votre algo de décrypt, donc inutile.

C'est tout simple ^^


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Enregistré le: 4 Oct 2002

Message le Sam Juil 01, 2006 15:57

Si tes développeurs ont accès au ftp, même si tu arrives à mettre le code dans un répertoire inacessible via ftp.

Ils pourront faire une page php, faire un appel à la fonction de connection, et afficher les données.

Sinon, je pense que c'est plutot au niveau de la conception du site : sépare, le contenu du code.
Passe par des templates situées dans un répertoire où tu interdis l'execution de script php. Tu donnes juste accès à ce répertoire

François


Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :