Protéger l'accès à un répertoire sur votre serveur.
Protéger un répertoire sur un serveur est assez simple s'appuie sur un fichier ".htaccess" et sur un ".htpasswd". Ce deuxieme fichier contiendra les noms et mots de passe des personnes autorisées à accéder au contenu de votre répertoire.
Le fichier .htaccess
Mettez ce code dans notre fichier :
AuthUserFile /home/www/login/www/repertoire/.htpasswd
AuthGroupFile /dev/null
AuthName "Acces Protégé"
AuthType Basic
<limit GET>require valid-user</Limit>
Detaillons un peu le contenu de ce fichier :
AuthUserFile /home/www/login/www/repertoire/.htpasswd
Cette ligne indique quel fichier contient les paires login/mot de passe des visiteurs autorisés. Attentio, il ne s'agit pas d'une URL, mais bien d'un chemin d'accès depuis la racine du serveur.
AuthGroupFile /dev/null
Cela permet de donner un droit d'accès à un ensemble d'utilisateurs faisant partie d'un même groupe (rarement utilisé). Dans l'exemple, le fichier /dev/null est l'équivalent Unix de "nulle-part" ou "pas de fichier spécifique".
AuthName "Acces Protégé"
La chaîne de caractères qui apparaîtra dans la boîte de dialogue au moment de la saisie du nom et du mot de passe.
AuthType Basic
Détermine le type d'authentification utilisé, dans le cas de l'exemple l'authentification HTTP standard.
<limit GET POST> ... </limit>
Détermine le type d'opérations permises. GET s'applique à la majorité des pages Web, POST est utilisé par certains scripts, éditeurs ou formulaires. Il est impératif de mettre GET et/ou POST en majuscule.
require valid-user
Signifie littéralement qu'un utilisateur valide est requis, c'est à dire un utilisateur pour le nom duquel une ligne existe dans le fichier .htpasswd.
Une variante pourrait être "require user pierre paul" pour limiter l'accès aux seuls utilisateurs pierre et paul.
Astuce : pensez à protéger votre fichier .htaccess de toute tentative de lecture en y intégrant les lignes suivantes :
<Files .htaccess>
order allow,deny
deny from all
</Files>
Le fichier .htpasswd
Le contenu de ce fichier est simple : pour chaque utilisateur autorisé, ce fichier contient une ligne de la forme :
nom:mot-de-passe_crypté
Exemple :
paul:saqKFoHV4rU.E
Comme vous le voyez, le fichier .htpasswd est tres simple, la seule difficulté étant de crypter le mot de passe.
Pour cela, il existe deux méthodes différentes :
1/ Vous avez accès à un shell Unix/Linux, tapez la commande suivante :
htpasswd -c passwdfile username
Dans cette commande, passwdfile représente le chemin complet du fichier mot de passe souhaité et username est le nom de l'utilisateur.
2/ Utilisez un utilitaire en ligne, souvent fourni par votre hébergeur.
Par exemple, Celeonet propose cet utilitaire : http://www.celeonet.fr/doc/htpasswd.php qui vous génére directement la ligne à rajouter à votre fichier .htpasswd.