XAMPP : sécuriser
L'image ci-contre montre l'affichage par défaut d'un accès non autorisé à une page d'un site web apache sous xampp.
La gestion de cette sécurisation s'effectue par le fichier httpd-xampp.conf du dossier \xampp\apache\conf d'une installation par défaut (ou en cliquant sur le bouton apache admin du panneau de contrôle Xampp.
La section LocationMatch
La section comprise entre les balises LocationMatch (comme l'indique la documentation) du fichier httpd-xampp.conf, liste les URL sur lesquelles s'appliquent les directives d'autorisation qui y sont listées. Ces directives l'emporte sur celles définies dans les sections "directory" et "files".
Les URL y sont décrites sous la forme d'une expression régulière (dans l'exemple : ^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info)) pouvant utiliser des alias décrits plus haut dans le fichier (exemple : licences).
Les directives allow et deny indiquent quelles ordinateurs seront autorisées ou non à accéder aux pages. Ces ordinateurs sont nommés soit par :
leur adresse IP ( exemple : 192.168.1.22) ;
l'adress IP du LAN auxquels elles appartiennent (exemple: 192.168.1.0/24) ;
au domaine auxquels elles appartiennent (lurcat.lan).
La directive order indique l'ordre dans lequel sont traitées les directives allow et deny. Attention la syntaxe est "order deny,allow" (sans espace entre deny et allow).
Un exemple extrait d'un fichier httpd-xampp.conf :
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
# Require local
Order Deny,Allow
Deny from all
Allow from localhost
Allow from ::1 127.0.0.0/8
Allow from 192.168.1.0/24
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
Les fichiers .htaccess
Lorsque le site se trouve sur un serveur que l'on n'administre pas (cas des hébergements), nous n'avons pas accès aux fichiers de configuration httpd. Pour sécuriser notre site, nous placerons un fichier .htaccess à sa racine. Les directives contenues dans ce fichier s'appliqueront sur le dossier et ses sous-dossiers.
Ci-contre, le contenu d'un fichier .htaccess qui réserve l'accès au fichier "licence.txt" (placé dans le répertoire du fichier .htaccess) aux seuls utilisateurs listés dans le fichier .licencepasswd.
Pour créer le fichier .licencepasswd, il faut utiliser le programme htpasswd.exe situé dans /xampp/apache/bin. Dans un terminal (ms-dos ou powershell), taper :
htpasswd.exe -c .licencepasswd dh pour créer le fichier et y placer l'utilisateur dh ( et son mot de passe) ;
htpasswd.exe .licencepasswd benoit pour ajouter l'utilisateur benoit ( et son mot de passe) au fichier existant.
Sécuriser l'accès au fichier licence.txt :
<FilesMatch licence.txt>
AuthName "le fichier est protegé, identifiez-vous !"
AuthType Basic
AuthUserFile "/homepages/.licencepasswd"
Require valid-user
</FilesMatch>