Page 1 sur 1
PHP/MySql et sécurité du mot de passe
Publié : 16 mai 2005, 14:49
par Nerva
Bonjour.
Pour toute application utilisant PHP/MySql, on doit charger sur le serveur un fichier contenant le mot de passe, pour que les pages adéquates puissent accéder à la base de données. Mais qu'en est-il au niveau sécurité ? Quelle est la protection effective du dit fichier ?
Merci.
Publié : 16 mai 2005, 14:57
par Benoit
En théorie, le fichier doit définir des variables (ou peut-être mieux, des constantes) et être lui-même en PHP (extension comprise), afin que si quelqu'un découvre son adresse il ne voie qu'une page blanche.
Mieux vaut aussi, si l'application le permet, le mettre dans un répertoire séparé, protégé par un htaccess ou même tout à fait inaccessible via le serveur Web (un niveau sous la racine de celui-ci par exemple).
Publié : 16 mai 2005, 14:58
par chBok
Ce n'est pas tout à fait exact !
PHP/MYSQL ne gère pas les droits d'accès aux données (enfin presque car mysql peut le faire). C'est le role du serveur de gérer les droits. Dans le cas d'Apache qui représente maitenant la majorité des serveurs dans le monde, il faut en passer par la configuration, soit du serveur principal, soit d'un serveur virtuel, soit d'un hébergement de site personnel, soit d'un fichier de configuration d'un répertoire donné.
Dans ce dernier, il s'agit du fichier .htaccess qui contient les directives nécessaires pour la sécurisation des données. Et classiquement, une configuration normale du serveur Apache interdit l'accès à ce fichier de l'extérieur.
Publié : 16 mai 2005, 15:01
par Nerva
Voilà comment je procède.
J'ai un fichier global PHP :
Code : Tout sélectionner
<?
$host = "xxxxx";
$user = "xxxxx";
$pass = "xxxxx";
$bdd = "xxxxx";
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
@mysql_select_db("$bdd") or die("Impossible de se connecter");
?>
Et dans chaque page accédant la la base de données :
On peut mieux faire ?
Protéger l'accès par un htaccess ? Oui, mais si j'ai bien compris, les pages (compteur, livre d'or...) ont besoin du mot de passe pour fonctionner, et elles n'arriveront pas à y accéder si il n'est pas... accessible !
Publié : 16 mai 2005, 15:07
par Benoit
Si si, PHP exécute l'instruction include via le système de fichiers local (d'où la possibilité de placer ton fichier hors de la visibilité du serveur Web).
La protection par htaccess ou l'inaccessibilité par le serveur est un plus dans le cas où, par exemple suite à une mise à jour ratée du serveur par l'hébergeur, les fichiers PHP ne se trouvent pas interprétés pendant un certain temps et sont affichés en clair.
Bon, même si ça devait arriver, en théorie l'accès à la base de données devrait avoir un mot de passe différent de l'accès FTP et on ne devrait rien savoir en faire. En pratique je sais que ce n'est pas toujours le cas.
Publié : 16 mai 2005, 15:41
par Nerva
Question mise à jour par l'hébergeur, une page perso chez Free ne devrait pas y être soumise, non ?
Donc, en clair, je crée un répertoire que je protège par un htaccess, j'y place mon ficher global et les fichiers dépendants arriveront quand même à s'y connecter, c'est bien ça ?
Publié : 16 mai 2005, 16:27
par Benoit
Oui, vu les circonstances c'est le mieux que tu puisses faire

D'ailleurs, beaucoup ne vont pas jusque là.
Publié : 21 mars 2006, 18:15
par galad
bonjour,
je fais remonter ce topic car je cherche des infos sur un accès limité pour un site que je voudrais faire, limité à ma famille à l'étranger.
Je ne connais rien en php. Connaissez vous d'autres moyens pour limiter les accès aux pages ?
Merci.
Publié : 21 mars 2006, 18:18
par SB
Comme indiqué plus haut,
.htaccess.
Publié : 21 mars 2006, 18:59
par galad
Ben ... je vais essayer.
Merci.