Inclure les paramètres de config...

Eléphanteau du PHP | 47 Messages

08 juil. 2006, 22:08

Bonsoir,

Pour simplifier un eventuellement changement d'herbergeur, je voudrais regrouper mes paramètres serveurs (identifiant SQL entre autres) dans un seul fichier. N'est-ce pas risquer ? Comment sécurisé ce fichier ?

Merci pas avance...

PS : Ca serait pour l'inclure avec include() dans chaque page...

Mammouth du PHP | 1511 Messages

08 juil. 2006, 22:52

Il n'y a aucune problème a cela :)
Juste un truc simple a faire, en haut de chaque page, mets
define('securised', 'ok');
ou tout autre donnée pourvu que ca corresponde aux parametres suivants pour ton fichier de config:
if(defined('securised'))
{
//ta config
}
C'est assez simple :)

Eléphanteau du PHP | 47 Messages

09 juil. 2006, 12:32

Bonjour, et merci pour ta réponse

Dans quel type de fichier je stocke ces config ? PHP ? Je fais un CHMOD ou pas ?

De plus, je n'ai pas compris l'utilité de vérifier les variables avec define(). Pouvez-vous m'expliquer ?

@+ et merci

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

09 juil. 2006, 13:54

Le but de la constante est que le fichier inclus n'aie d'effet que si la constante est bien définie. Si quelqu'un essaie d'inclure ce fichier il devra définir cette variable. Cette protection est absolument inutile en pratique :
- si le fichier peut être lu, alors le "pirate" n'a qu'à le copier, et lire directement son contenu : la constante ne sert alors à rien.
- si le fichier ne peut être lu, alors il est impossible de l'inclure, et la protection est inutile.
La protection par définition de constante n'est pas une protection contre le vol de données.

Pour répondre à ta question : oui tu peux le faire sans problème, vérifie simplemet que ce fichier est dans un dossier protégé par un .htaccess qui interdira totalement l'accès via le web. En effet si jamais un jour ton hébergeur a un souci de config sur son serveur web, il se peut très bien que du jour au lendemain la source de tes fichiers soient directement visible avec un simple navigateur (c'est déjà arrivé !).

Personnellement, tous mes fichiers de config se trouvent au même endroit que mes librairies, classes & cie, dans un dossier "/include" (tout simplement), qui contient systématiquement un .htaccess

Code : Tout sélectionner

<Files *> Order Allow, Deny Deny From All </Files>
Toute tentative d'accès à l'un de ces fichiers via un navigateur se soldera par une erreur 403, si tu veux tu peux même intercepter les erreurs 403 pour les logger ;)

Avantage du fichier de conf : pour changer d'hébergeur (typiquement passer du serveur de test au serveur de production), tu n'as qu'un fichier à modifier ;)

Eléphant du PHP | 332 Messages

10 juil. 2006, 19:22

Personnellement, mes fichiers de config sont dans un réperoire qui n'est pas sur Internet, comme ça, même en cas de plantage du serveur, il ne sont pas visibles (par exemple, truc très désagréable : le webmaster désactive php par erreur et donc tous les fichiers *.php sont traités comme des fichiers texte, donc le source est affiché).

par exemple, chez OVH : tu accèdes par ftp aux répertoires

Code : Tout sélectionner

cgi-bin requetes sessions www
Le site Internet est stocké dans le répertoire www.

Je crée un répertoire password sous la racine et j'y stocke mes fichiers .htpasswd ainsi que les fichiers php contenant les codes et mots de passe des bases de données ou autres fichiers sensibles.

Mes fichiers .htaccess pointent sur les fichiers .htpasswd de ce répertoire et mes include PHP également. En cas de dé-phpisation du serveur, l'internaute verra éventuellement un include ("../password/connect.php"), mais ne pourra jamais y accéder : il faudrait qu'il tape www.monsite.com/../password/connect.php et ça, ça ne marche pas !

Eléphanteau du PHP | 47 Messages

10 juil. 2006, 21:30

Merci, mais pour l'instant je suis chez Free, donc je ne peut pas appliquer cette ruse (qui me parrait cependant très bonne)...

@+