Aller au contenu principal


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&eacute;, identifiez-vous !"
AuthType Basic
AuthUserFile "/homepages/.licencepasswd"
Require valid-user
</FilesMatch>

 

L'image ci-dessous illustre l'usage du programme htpasswd.exe

Le fichier créé dans cet exemple a 2 lignes. Chaque ligne est formé d'un login (en clair) et de son mot de passe associé (crypté)