L'objet de cette page est d'apprendre
à protéger par mot de passe, sous serveur Apache, certains répertoires
ou fichiers contenant des données à accès restreint.
Nous étudierons plus particulièrement
l'utilisation des fichiers .htaccess et .htpasswd qui sont les fichiers
qu'utilise le serveur de type Unix.
Le fichier .htaccess se place dans le répertoire
contenant les documents à protéger (il peut y avoir autant de fichiers
.htaccess que de répertoires), et précise notamment le chemin du
fichier .htpasswd contenant le ou les mots de passe. La protection
s'applique à la totalité du répertoire et récursivement aux sous-répertoires.
Un fichier .htaccess ressemblera à
ceci sur un serveur Unix:
AuthUserFile /home/virtual/siteXX/fst/var/www/.htpasswd
AuthGroupFile /home/virtual/siteXX/fst/var/www/.htgroup
AuthName "Nom du répertoire"
AuthType Basic
<Limit Get>
require group nom du groupe
</Limit>
SiteXX = le numéro d'ordre du site ex: site23
require group = (le nom du groupe auquel est rattaché .htaccess
Seuls les utilisateurs dont
l'identification a réussi pourront accéder (par une requête de type
GET ou POST) à un document protégé.
Générer
automatiquement un fichier htaccess
Le fichier .htpasswd correspondant
contient les identifiants et le mot de passe. Pour créer ce fichier, on
utilise la commande htpasswd, ce qui nécessite un acces telnet
(improbable chez la plupart des hébergeurs grand-public. Il y a un
autre moyen. Créer de toute pièce le fichier .htpasswd et l'uploader
sur le site.
Pour créer le fichier .htpasswd on utilise l'éditeur de texte Notepad
qui se trouve en standard sur votre PC.
On saisi l'identifiant suivi de : et du mot de passe que l'on aura pris
le soin de crypter avec l'utilitaire que Gilmir.com met à votre
disposition
Un fichier .htpasswd ressemblera à
ceci sur un serveur Unix:
bidule:tarentule
ce qui donne ceci après avoir crypté le mot de passe
bidule:li0NProEZw5lY
bidule est le login et ce qui suit après
les deux tirets : est le mot de passecrypté.
Pour crypter un mot de passe, vous
pouvez utiliser la fonction crypt de Perl, ce qui a été fait ici pour
le formulaire:
Utiliser la fonction
Crypt de Perl