2011-05-12 3 views
1

J'ai une application PHP et je prévois de conserver les paramètres critiques dans un fichier .ini. Cependant, je pense que ce fichier peut être consulté sur le web, alors où est un "lieu standard" pour qu'il soit placé?Emplacement de .ini pour les applications Web

Répondre

3

Vous pouvez le stocker au-dessus du document/de la racine Web ou en bloquer spécifiquement l'accès. Par exemple, une structure commune pour les applications PHP est:

application/ 
public/ 

public est la racine web - donc je stocke habituellement la configuration d'application dans application/config où je sais qu'il ne peut y accéder.

Une alternative serait de bloquer à l'aide d'Apache:

<!-- Block access to all .ini files --> 
<Files ~ "\.ini"> 
    Order deny,allow 
    Deny from all 
</Files> 
1

La "place standard" n'est pas affectée par la racine du répertoire de l'apache. Par exemple, vous pouvez le placer sous /home/someuser/, ou ailleurs.

1

Placez le fichier .ini en dehors de la racine Web ou protégez-le avec .htaccess si vous voulez vraiment le conserver sous la racine Web.

0

J'utiliserais une base de données pour être honnête. Toutefois, si vous voulez vraiment utiliser un fichier plat (par exemple, .ini), vous pouvez le placer dans un répertoire et utiliser .htaccess pour empêcher les utilisateurs d'y accéder via leur navigateur. De cette façon, vous pouvez toujours accéder au fichier via les fonctions du fichier php.

Pour ce faire, créez un fichier appelé .htaccess dans le dossier que vous voulez protéger (par exemple ini /)

Puis, dans ce put fichier:

deny from all 

Le dossier est maintenant pas accessible en allant à l'url dans le navigateur.

+0

Vous ne pouvez pas stocker le nom d'utilisateur de base de données/mot de passe/hôte dans la base de données que vous aussi. Un fichier de configuration est toujours utile pour tout ce qui n'est pas trivial avec un codage en dur réservé uniquement pour les choses jetables. –

1

Il est accessible si vous placez votre fichier INI dans votre site web/docroot. S'assurer que le fichier n'est pas accessible via le docroot est la première étape.

0

Placez la configuration dans un répertoire qui n'est pas lisible par le serveur Web, mais est lisible pour l'application. Généralement, vous disposez d'un répertoire spécifique lisible par le serveur Web, tel que "web", "www", "public" ou "public_html". Assurez-vous de le mettre dans le répertoire ci-dessous celui-là.

De cette façon, votre application peut lire le fichier:

$cfg = parse_ini_file( 
    realpath(dirname(__FILE__) . '/../') . '/config.php' 
); 

Votre serveur web ne sait pas comment l'atteindre, donc il est sûr.

0

Un bon exemple est Zend FW ou tout autre framework php. répertoire structue est:

application/config/config.ini 
library/Zend/ 
public/index.php 

où public est accesible de web

Questions connexes