PHP/MySql et sécurité du mot de passe

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
Nerva
Lézard à collerette
Messages : 219
Inscription : 01 oct. 2004, 15:19

PHP/MySql et sécurité du mot de passe

Message 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.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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).
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message 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.
Nerva
Lézard à collerette
Messages : 219
Inscription : 01 oct. 2004, 15:19

Message 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 :

Code : Tout sélectionner

include("fichier_global.php");
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 !
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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.
Nerva
Lézard à collerette
Messages : 219
Inscription : 01 oct. 2004, 15:19

Message 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 ?
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Oui, vu les circonstances c'est le mieux que tu puisses faire :) D'ailleurs, beaucoup ne vont pas jusque là.
galad
Lézard à collerette
Messages : 346
Inscription : 19 déc. 2005, 12:23

Message 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.
Galad, avec kpz 0.8b1 ...
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

Comme indiqué plus haut, .htaccess.
galad
Lézard à collerette
Messages : 346
Inscription : 19 déc. 2005, 12:23

Message par galad »

Ben ... je vais essayer.

Merci.
Galad, avec kpz 0.8b1 ...
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités