Interdire l'accès direct aux fichiers INI et XML

10

Certains propriétaires de sites ne veulent pas que les gens, en particulier leurs concurrents, sachent quelles fonctionnalités ils ont sur leurs sites.

Parce que certaines informations sensibles dans la langue ou les fichiers de configuration sont accessibles directement à partir du navigateur, par exemple.

administrator/components/com_bank/language/en-GB/en-GB.com_bank.ini
administrator/components/com_bank/config.xml
components/com_bank/models/forms/transaction.xml

Bien que seuls les techniciens connaissent Joomla puissent comprendre ces liens, y accéder et découvrir (ou deviner) quelles sont les fonctionnalités du site, mais les propriétaires du site veulent que tout soit secret.

Existe-t-il une solution côté serveur ou une extension Joomla pour interdire l'accès direct à ces fichiers INI et XML?

Hung Tran
la source

Réponses:

13

Mettez cette directive dans votre .htaccessfichier:

<FilesMatch ".(ini|xml)$">
  order allow,deny
  deny from all
</FilesMatch>
Dmitry Rekun
la source
Je vous remercie! Le résultat de ceci est une erreur interdite 403 "Interdit Vous n'avez pas la permission d'accéder ... sur ce serveur."
Hung Tran
6

Vous pouvez étendre le fichier .htaccess de Joomla avec une RewriteRule pour ces types de fichiers.

Un simple pourrait être

RewriteRule \.xml$ index.php [L]
RewriteRule \.ini$ index.php [L]

ces règles vérifient si la fin de la demande est ".xml" ou ".ini" et réécrit la demande dans index.php. le [L] signifie la dernière règle.

Vous devez mettre cela dans la section

## Begin - Custom redirects
Harald Leithner
la source
J'ai essayé cela et le résultat a été ma page d'accueil sans aucun style CSS chargé.
Hung Tran
Vos fichiers css se terminent-ils par xml ou ini?!
Harald Leithner
Ils ne le sont pas, leur extension est .css. J'ai testé avec une nouvelle installation de Joomla.
Hung Tran
3

Une extension Joomla serait la mauvaise approche car Joomla n'est pas impliqué lorsque vous accédez directement aux fichiers sur le serveur.

Vous pouvez facilement réaliser ce que vous voulez avec .htaccess ou dans la configuration de votre serveur. Quelque chose comme ça devrait faire l'affaire:

<Files  ~ "\.xml$">
  Order allow,deny
  Deny from all
</Files>

Tiré de http://www.ducea.com/2006/07/21/apache-tips-tricks-deny-access-to-certain-file-types/

Bakual
la source