Page 1 sur 1

sécurité MySQL

Posté : 14 juin 2006, 12:01
par sebb
Bon c'est une question sans doute à la réponse simple mais qui m'ennuye assez. Je code un site avec accès utilisateur via login et mdp. Pour éviter les injections SQL pirates je me débrouille, mais voilà: comment rendre inaccessible le mot de passe et le nom d'utilisateur demandés par MySQL pour accéder à la BD contenant la liste des utilisateurs et de leurs mdp (et le cas échéant y inscrire les nouveaux utilisateurs)??
Je les ai mis dans un fichier .php qui est appelé par require.
Est-ce une sécurité suffisante? Et comment rendre impossible l'accès détourné à ce fichier (oui c'est un fichier .php mais parfois le serveur merde et affiche quand même le contenu!)

Merci pour vos conseils...

Posté : 14 juin 2006, 12:15
par jobherzt
la premiere precaution est de penser a mettre les balises <? et ?> au debut et a la fin de ton fichier.. comme ca, s'il est appelé directement, il n'affichera que du blanc.

ensuite, tu peux le placer dans un repertoire protégé par un htaccess avec un DENY FROM ALL.

Posté : 14 juin 2006, 12:23
par zeus
1/ si le code n'est pas entouré par un <?php ?>, les valeurs ne seront jamais reconnues ;)
2/ si tu interdit l'accès au fichier pour tous, même ton applicatif ne pourra y acceder. Sans être un pro, je dirais qu'il ne faut autoriser uniquement l'accès au serveur local. Un truc du genre

Code : Tout sélectionner

Deny From All Allow from 127.0.0.1
3/ le fait de placer tes identifiants dans un script suffit parce que celui qui parviendra à lire ce script aura déjà réussi à s'introduire sur le serveur et il sera trop tard et le vol de ces identifiants sera le moindre de tes soucis ;)

Posté : 14 juin 2006, 12:40
par jobherzt
pour le coup du htacces, je ne suis pas sur... le htaccess s'applique uniquement aux connexion http, alors que la le fichier est appelé par un logiciel present sur le serveur..

Posté : 14 juin 2006, 12:58
par zeus
Pas faux :-k

Fraudrait que j'essaye ;)

Posté : 14 juin 2006, 13:26
par sebb
Merci pour vos réponses,

bien évidemment mon fichier appelé est entre balises <?php et ?> d'ailleurs le lien fonctionne très bien. Cependant je n'ai pas de fichier .htaccess, comment ça marche ce truc?

Posté : 14 juin 2006, 13:30
par jobherzt
un fichier .htaccess est un fichier que tu place dans des repertoire pour donner des instructions a apache. typiquement, cela sert a :
-restreindre l'acces au repertoire
-faire de l'url rewriting..

je n'ai pas le code exact, mais la doc se trouve facilement.

http://fr.wikipedia.org/wiki/Htaccess

Posté : 16 juin 2006, 18:06
par Henri
Je ne sais pas comment est configuré ton serveur, ni à quels répertoires tu as accès, mais pourquoi ne pas mettre tous ces ficheirs sensibles dans un répertoire qui n'est pas accessible par le web : les require fonctionnent en utilisant la hiérarchie du disque, pas celle du web.

2 exemples :
sur un hébergement OVH mutualisé, les pages web sont dans un répertoire home/nomuser/www.
Pour stocker des informations sensibles (comme les fichiers .htpasswd), je crée systématiquement un répertoire home/nomuser/private.
Les fichiers de ce répertoire sont accessibles par ftp et par PHP. Mais en aucun cas par le web.
Même si le serveur par en sucette, l'utilisateur aura un message lui disant que le fichier home/nomuser/private est inaccessible ou lui montrera la source du PHP. Mais l'internaute ne pourra jamais accéder à ce répertoire puisqu'il lui faudrait taper http://www.site.com/../private !

Même chose avec un hébergement sur un serveur Windows dédié. IIS est configuré pour que les sites soient dans un répertoire D:\SitesWeb (ou C:\Inetpub par défaut). Et les fichiers sensibles sont stokés ailleurs sur le disque, donc hors de portée du Web. Et dans ce cas, c'est même inaccessible via ftp : il faut directement aller sur le serveur.

Posté : 16 juin 2006, 23:08
par sebb
merci à tous pour vos avis, je m'en vais les mettre en pratique de ce pas. Entretemps comme un imbécile j'ai foutu en l'air mon MySQL local, que j'ai dû désinstaller puis réinstaller et tout débugger... aarrggh la galère.... :cry: :cry:

S