|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : août 2002 Messages : 226 ![]() |
Bonjour à toutes et à tous !
Avant tout, j'ai un peu hésité pour le choix du forum dans lequel poster ma question (Php ? Php/MySQL ? Apache ?). Si parfois, l'endroit n'est pas approprié pour ma question, d'avance merci à l'équipe de modération de me dire où poster ma question Bref. Je suis en train de développer un site web en php avec mysql. J'ai structuré mon code en plusieurs fichiers répartis dans plusieurs dossiers. Mon problème concerne un fichier db_co.php déposé dans un dossier. Ce fichier contient les constantes (database name, host name, server name, driver name, ...) permettant de créer la chaîne de connexion à ma base de données. La question que je me pose est de savoir quelles sont les meilleures pratiques pour sécuriser l'accès à ce fichier / dossier pour éviter que les identifiants de connexion à la base de données soient dérobés (le tout dans un contexte Php / MySQL / Apache) ? Ce que j'ai testé c'est de protéger l'accès au dossier par un mot de passe mais le problème que je rencontre c'est au niveau de l'include de db_co.php, une popup s'affiche et me demande l'identifiant et mot de passe (d'ailleurs, si je fais annuler, ma page s'affiche quand même). Ce que je pense faire et j'aimerai savoir votre avis, c'est de n'autoriser l'accès à db_co.php uniquement pour les utilisateurs qui proviennent d'un certain domaine (le domaine de mon site) ... je pense que ça serait une bonne solution mais je ne sais pas s'il n'y a pas quelque chose que j'oublie. D'avance merci pour votre aide. |
|
|
00
|
|
|
#2 | ||
|
Invité régulier
![]() Inscription : septembre 2008 Messages : 31 ![]() |
Salut,
Il faut que tu créer un .htaccess du genre a la base de ton dossier avec par exemple : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : février 2008 Messages : 430 ![]() |
Logiquement si dans ton fichier, tu as des commandes php qui valorisent des variables avec les identifiants de ta base, ils ne pourront pas être visibles par l'utilisateur final.
Tant que dans ce fichier tu n'affiches pas ces valeurs il n'y a pas de risque.
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre. Linus Torvalds |
|
|
00
|
|
|
#4 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Vu que ton fichier db_co.php est bien en PHP, tenter d'y accéder par apache ne devrait rien produire à l'affichage (à moins que tu n'aies eu la bêtise de faire des echo cela va sans dire
Tu peux ajouter une double sécurité pour protéger le répertoire ou tu as mis tes scripts de configuration. Supposons que toute la conf soit isolée dans un répertoire config, pour le sécuriser il suffit de mettre un .htaccess à la racine et d'y mentionner: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Salut
Je rajouerais un point qui n'a pas été évoqué, c'est de ne pas placer un fichier plus ou moins confidentiel (comme stocker un mot de passe) dans la partie "publique" du site Web, c'est à dire là où ce trouve le virtualhost. En général c'est www ou htdoc ou encore public, etc ... Même si c'est un fichier Php et qu'il n'y a pas de echo, il persiste quand même un risque qu'un hacker plus malin que les autres puisse obtenir le contenu brut (en texte) du fichier, et du coup du mot de passe en clair. Placer le fichier de config en dehors du virtualhost, comme : /home/user/www/ (virtualhost défini ici) /home/user/config/config.php (mot de passe dans ce fichier) Même s'il est placé en-dehors, ça n'exclus pas de créer un .htaccess comme cela a été dit dans le post précédent.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
20
|
Copyright © 2000-2012 - www.developpez.com