Question

Mon ami m'a demandé de mettre à jour une application PHP que son entreprise utilise. J'ai découvert que l'application utilise l'extension .ini pour le fichier de configuration DB. Le fichier contient une adresse hôte DB, un nom d'utilisateur et un mot de passe !!. Le problème est que je peux accéder au fichier sur les navigateurs Web.

J'essaye de comprendre pourquoi. Existe-t-il des raisons particulières d'utiliser un fichier PHP ordinaire avec une extension .ini ??? Je ne comprends tout simplement pas.

Était-ce utile?

La solution

La lisibilité est l'une des principales raisons pour lesquelles j'ai utilisé des filies INI pour les configurations de script PHP dans le passé. Les personnes qui ne sont pas des codeurs ont rencontré un fichier INI au moins une fois auparavant et peuvent comprendre ce que c'est beaucoup plus facile qu'un simple fichier PHP.

Le problème des fichiers INI lisibles par tout le monde peut être évité par la configuration côté serveur, ou même mieux, en ajoutant simplement une seule ligne de code dans une ligne de commentaire en haut du fichier.

De cette façon, PHP sortira un «accès direct interdit» lorsque le fichier sera accessible via un navigateur, et le fichier INI continuera de fonctionner comme auparavant.

Autres conseils

Vous pouvez utiliser Zend_config_ini. C'est confortable et facile. Ne mettez tout simplement pas de fichiers de configuration où un utilisateur peut les atteindre (par exemple public_html).

Les fichiers INI ne sont qu'un moyen de gérer la configuration, peut-être que le développeur est venu d'un arrière-plan de développement de Windows et a utilisé tout ce qu'il connaissait :). De plus, PHP offre un moyen pratique d'analyser les fichiers INI via le parse_ini_file fonction.

Vous voudrez vous assurer que le fichier .ini n'est pas accessible à partir du Web. Déplacez-le sous le docroot afin que votre script PHP puisse toujours y accéder, mais les navigateurs aléatoires ne le peuvent pas.

Pour ce que ça vaut, PHP a traditionnellement utilisé php.ini Pour configurer PHP. Alors peut-être que c'est une sorte d'héritage?

On dirait que c'est juste le souhait d'ancien programmeur d'utiliser différents types de fichiers pour la configuration. S'il n'y a pas d'autres utilisations pour ce fichier, renommez-le à * .php et oubliez-le. Sinon, configurez le serveur Web pour analyser INI en tant que PHP ou, mieux, déplacez-le vers le répertoire, non accessible depuis le serveur Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top