Stocker des variables de configuration dans un fichier XML sur un site PHP sous la racine du site est-il trop risqué?

StackOverflow https://stackoverflow.com/questions/605308

  •  03-07-2019
  •  | 
  •  

Question

J'ai remarqué que Magento stocke les détails de connexion MySQL dans un fichier XML qui n'est pas sécurisé au-dessus de la racine de racine. Cela semble .... bien dangereux.

XML semble être un moyen pratique de stocker des données de configuration, sauf pour une chose, taper http://www.domain.com.au/library/config.xml montrera au monde vos informations privées!

J’ai utilisé un fichier XMl et l’ajouté à mon fichier .htaccess.

<Files ~ "\.xml<*>quot;> // regex files that end with xml extension
Order allow,deny 
Deny from all // don't show them
</Files>

Maintenant, je suis heureux avec cela, maintenant je ne suis pas trop sûr. Que se passe-t-il si le fichier .htaccess est accidentellement supprimé / corrompu (cela se produit-il en plus d'une erreur humaine) et si un jour je souhaite placer l'application sur un serveur autre qu'apache ... chaque serveur a-t-il l'équivalent de bloquer les fichiers XML, et Si tel est le cas, peuvent-ils être modifiés au niveau du dossier, comme le permet le fichier .htaccess (et pas seulement un fichier httpd.conf).

Ma question est la suivante: est-ce que la commodité du XML (facile à mettre à jour, les concepteurs qui ont besoin de bricoler ne se sentiront pas aussi intimidés) l'emporte sur les problèmes potentiels (exposition de données privées)?

Était-ce utile?

La solution

Personnellement, je ne stockerais que les informations de fichier de configuration dans un format qui ne soit pas directement accessible. Donc, je voudrais soit utiliser le format XML au-dessus de la racine du document ou utiliser le format PHP $ config ['nomvar'] = 'valeur'. Cette dernière méthode ne ferait que restituer une page blanche vierge si elle était appelée directement (à condition que ce soit tout en PHP, qu’elle ne contienne pas de code HTML et qu’elle ne soit pas renvoyée à l’écho).

Gallery, vBulletin et Joomla utilisent tous la deuxième méthode que j'ai mentionnée. Je sais que j'ai déjà mentionné ces projets dans d'autres questions liées à PHP, mais il semble que ce soit une méthode largement utilisée et acceptée entre les projets.

Autres conseils

Réponse courte, non ce n’est pas le cas. Mais une meilleure question serait. S'il n'est pas stocké dans un fichier de configuration, où le conserveriez-vous?

Je suis tout à fait d’accord avec inventix sur ce point mais propose également une 3ème option qui devrait être combinée avec soit

nommer le fichier contenant les informations de configuration

.htanything.whats

en tant que serveur, tous les fichiers commençant par .ht sont illisibles par les utilisateurs externes {c'est pourquoi htaccess est toujours .htaccess}

Personnellement, je ne stocke que les fichiers de configuration, y compris les bibliothèques de fonctions, en dehors de la racine du document, mais je comprends que certains utilisent donc toujours la convention .htnaming, même si le dossier $ includes doit être déplacé dans l’arborescence du document par le logiciel sur un tel serveur

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