Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/07/2006, 00h21   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 127
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2006
Messages : 127
Points : 46
Points : 46
Par défaut [SQL CONNECT] Cacher son mot de passe ?

Bonsoir !

Je suis tout débutant en PHP/MySQL, et mon premier problème (sûrement pas le dernier ) vient de la connexion à la base de données.

J'utilise, dans un script PHP :
$connexion = mysql_connect("mysql.mabase","login","passwd");

Pour l'instant je n'ai qu'un seul script : il vérifie qu'un pseudo n'existe pas déjà dans la base (mais apres bien sur d'autres scripts pour : ajouter un membre, etc etc)

Mais j'ai lu sur un site qu'il fallait surtout pas mettre son mot de passe MySQL dans le script PHP, ce que je peux sans doute comprendre.

Alors d'où ma question : si on met pas notre mot de passe de connexion à la BDD dans le script PHP, on le met ou ? (histoire que ce soit sécurisé et que le 1er pirate amateur vienne pas pourrir mon site )

Merci de votre aide

Lideln
Lideln est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2006, 10h08   #2
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
alors deja, faut pas etre un pirate amateur pour trouver ton mot de passe, meme ecrit en clair dans ton code php... mais ca reste faisable.

Une bonne solution consiste a :

* creer un repertoire "secure" (ou un autre nom) dans ton arborescence web
* creer dans ce repertoire 2 fichiers :
° un fichier nommé ".htaccess" contenant juste la phrase "Deny from all"
° un fichier nommé "config.php" (ou un autre nom) contenant :
Code :
1
2
3
4
5
<?php
$SQLhost = 'localhost';
$SQLpass= 'ton_pass';
$SQLlogin= 'ton_login';
?>
Puis, au lieu de faire mysql_connect(...), tu fait :

Code :
1
2
include('secure/config.php');
mysql_connect($SQLhost, $SQLlogin, $SQLpass) or die(mysql_error());
L'avantage est que ton mot de passe est toujours "en clair" dans le code (dans le fichier config.php) mais il est protégé par un .htaccess qui est la protection la plus bas niveau que tu puisse mettre (.htaccess est géré par le serveur web).
Pour t'en convaincre, il suffit d'aller sur http://tonsite.com/secure/ et tu obtiendras un beau message d'erreur comme quoi tu n'a pas le droit d'acceder a ce repetoire (cela est provoqué par le .htaccess)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2006, 10h11   #3
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
ou mieux, tu mets le fichier config dans un repertoire en dessous de la racine de ton site.
Comme ca, pas d'acces par le serveur web.
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2006, 10h12   #4
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par stunti
ou mieux, tu mets le fichier config dans un repertoire en dessous de la racine de ton site.
Comme ca, pas d'acces par le serveur web.
En faisant attention qu'il soit quand même dans le open_basedir de PHP
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2006, 10h14   #5
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Bien sur
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2006, 10h49   #6
Membre du Club
 
Inscription : juillet 2006
Messages : 127
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2006
Messages : 127
Points : 46
Points : 46
Par défaut Merci :)

Hello !

Merci pour vos réponses !
Je vais faire ca donc, utiliser le deny from all (en fait j'ai tous mes scripts dans un dossier spécial, et j'avais mis ce .htaccess, mais quand j'ai appelé le script depuis flash, impossile d'y accéder snif, normal me direz vous ^^)

Merci encore (j'ai pas capté le truc de open_basedir mais bon dans l'ensemble sinon voui )

A+ pour de nouvelles questions

Bonne journée,

Lideln

ps : Eusebius impec ton avatar...
Lideln est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h40.


 
 
 
 
Partenaires

Hébergement Web