Apache : Deny from all / Require all denied
Pour configurer vos fichiers .htaccess
La sécurité d’un site internet est essentielle, même obligatoire. C’est le premier rempart face au piratage d’un site et pour garantir aux internautes que les informations affichées soient fiables, non altérées ou supprimées par des personnes malveillantes. Il existe différentes manières de restreindre l’accès à des ressources mises à disposition sur un site internet, ce tutoriel concerne le serveur http Apache et ses fichiers .htaccess.
Bien connu des webmasters, le fichier htaccess est à utiliser si on n’a pas accès au fichier de configuration du serveur principal (Directory). De longues explications et des exemples sont donnés sur la page dédiée du site Apache http Server Project.
« Deny from all » est une ancienne directive, valable jusqu’à Apache 2.2 et qui est maintenant dépréciée sur Apache 2.4 et futures versions. C’est donc une modification importante à réaliser lors d’une mise à jour de version 2.2 vers 2.4 du serveur web.
Contenu d’un fichier .htaccess pour Apache
# Apache 2.4+ <IfModule authz_core_module> Require all denied </IfModule> # Apache 2.2 <IfModule !authz_core_module> Deny from all </IfModule>
Allow from all / Require all granted
A l’inverse, pour tout autoriser, sur un serveur web de test en local par exemple, il faut maintenant utiliser « Require all granted » au lieu de « Allow from all » :
# Apache 2.4+ <IfModule authz_core_module> Require all granted </IfModule> # Apache 2.2 <IfModule !authz_core_module> Allow from all </IfModule>
Exemples
Exemple sans authentification, toutes les requêtes sont rejetées :
Version 2.2
Order deny,allow Deny from all
Version 2.4
Require all denied
Pas d’authentification et toutes les demandes sont acceptées :
Version 2.2
Order allow,deny Allow from all
Version 2.4
Require all granted
Ici, il n’y a pas d’authentification et tous les hôtes du domaine exemple.org ont l’autorisation d’accès, tous les autres domaines sont refusés :
Version 2.2
Order Deny,Allow Deny from all Allow from exemple.org
Version 2.4
Require host exemple.org
Des informations complémentaires sur le contrôle d’accès par htaccess sur les serveurs HTTP Apache sont à lire ici et là, sur le site officiel.