Refuser l'accès à certains fichiers avec .htaccess
Récemment, je parlais de l'importance de restreindre l'accès à certains types de fichiers qui pourraient être accessibles par les visiteurs d'un site web. Cela incluait les fichiers .htaccess, .htpasswd, les configurations .ini de Zend_Config ainsi que les bases de données SQLite, pour ne nommer que de ceux-là.
À l'aide d'une instruction FileMatch et d'une expression régulière qu'on place dans le fichier .htaccess d'Apache, on peut facilement y arriver.
Les fichiers débutants par .ht :
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch>
Les extensions .ini :
<FilesMatch "\.ini$">
Deny from all
</FilesMatch>
Différentes extensions possibles pour SQLite :
<FilesMatch "\.(sqlite|sqlite2|sqlite3|sq|sq2|sq3)$">
Deny from all
</FilesMatch>
En résumé, il faut se rappeler que l'utilisation de cette instruction permet de :
- cacher les fichiers indiqués de l'index d'un répertoire
- envoyer un statut HTTP 403 Forbidden si un visiteur tente d'accéder aux fichiers
- protéger les fichiers importants
- éviter de laisser glisser des indices qui pourraient compromettre la sécurité