Annonce

Partenaires

Accueil > Services aux webmasters > Tuto pour sécuriser un dossier

Tutorial pour sécuriser un dossier (avec htpasswd)

Présentation

Tutorial

Sur votre site internet il peut être très recommandé de sécuriser certains dossier tel que votre partie administration. En imaginant que votre partie administration se trouve dans un dossier, tel qu'un dossier appelé "admin".
Une méthode assez simple pour très bien sécuriser un tel dossier serait d'utiliser un fichier ".htpasswd". Je vais vous expliquer dans ce tutorial comment réaliser une telle protection.

Il faut noter que cette méthode s'utilise avec des serveurs qui fonctionne sous Apache, si vous avez autre chose que ça pour votre site internet, alors il est possible que ça ne fonctionne pas.

Sécurisation d'un dossier

Lorsqu'il y a une protection par htpasswd une fenêtre s'ouvre pour vous demander un nom d'utilisateur et un mot de passe. Voici un exemple de ce type de fenêtre que vous pourrez avoir lorsque vous aurez sécurisé un dossier à l'aide de ce tutorial:

Fenêtre authentification requise

Si vous entrez les bonnes données (bon nom d'utilisateur et bon mot de passe) alors vous aurez accès au dossier, dans le cas contraire la page ne sera pas autorisé à être ouverte et vous aurez alors une erreur 401 (aussi appelée "Unauthorized").

Création du fichier htaccess

La première étape pour sécuriser un dossier c'est de créer un fichier htaccess, ce fichier permet de dire au serveur où se situe le pseudo et le mot de passe pour qu'il puisse ensuite sécuriser le dossier et savoir quel est le véritable nom d'utilisateur avec le mot de passe associé.

Le dossier htaccess doit être crée à partir du bloc-note ou d'un éditeur de texte quelconque. Il faut noter que vous devez absolument ne pas lui donner d'extension (tel que .txt ou .doc). Le nom exact que vous devez lui donner c'est: ".htaccess". Néanmoins, sur le système d'exploitation Windows il n'est pas possible de commencer un nom de fichier par un point, donc vous devez l'appellez pour le moment "htaccess" uniquement (sans le premier point et sans extension).

Dans ce fichier htaccess vous devez écrire ceci:

Code pour le fichier .htaccess:
AuthName "Page d'administration protégée, veuillez vous identifier"
AuthType Basic
AuthUserFile "/home/dossier/www/votre-repertoire/admin/.htpasswd"
Require valid-user

Néanmoins, la ligne "AuthUserFile" doit impérativement être modifiée pour qu'elle corresponde à votre site. Chaque site internet possède un chemin absolu différent et il peut être différent selon les hébergeurs. Par conséquent vous devez faire une certaine manipulation pour le connaitre. Voici la manipulation a effectuer pour connaitre le chemin absolu de votre hébergeur.

Il est tout d'abord obliger d'utiliser une page PHP. Pour vous donner un exemple clair, je vous recommande de créer une page exprès pour déterminer ce chemin absolu (que vous pouvez appelé "chemin-absolu.php" par exemple). Dedans utilisez la fonction "realpath" de PHP. Autrement dit, copiez ce texte sur la page que vous venez juste de créer:

Code PHP à insérer sur la page "chemin-absolu.php":
<?php
echo realpath("chemin-absolu.php");
?>

Une fois que ce sera fait, il ne vous reste plus qu'à uploader la page "chemin-absolu.php" sur votre serveur (dans le répertoire que vous souhaitez sécurisé, tel que "admin") puis vous allez l'ouvrir sur votre navigateur (exemple à la page: http://www.votre-site.fr/admin/chemin-absolu.php).
Lorsque vous ouvrez la page vous obtenez un chemin, c'est ce chemin qui va être utilisé dans le code que je vous ai donné tout à l'heure (à la place où il y avait AuthUserFile).

Vous voici maintenant avec votre fichier qui est actuellement appelé "htaccess". Vous pouvez l'uploader sur votre serveur, et lorsqu'il est sur le serveur là vous pouvez le renommé pour rajouter le "point" au début du htaccess. Ainsi vous aurez votre fichier qui s'appelle maintenant ".htaccess".

Création du fichier htpasswd

Cette étape est beaucoup plus simple (vous avez fait le plus dur jusqu'à présent). Le fichier htpasswd comporte les informations avec les noms des utilisateurs qui peuvent accéder au dossier. Pour chaque utilisateur il y a un mot de passe associé. A savoir qu'il peut y avoir autant d'utilisateur que vous le souhaitez.

Il y a un code particulier à insérer dans le fichier ".htpasswd", car le mot de passe est codé (pour éviter qu'il puisse être récupéré par un utilisateur quelconque). Voici un exemple concret de code que vous pouvez retrouver dans ce fichier (exemple fictif):

Exemple de code à insérer sur la page ".htpasswd":
nom-utilisateur1:$1$hdkZ3x0v$iADjlj7l3V6T8dDuv3UhB/
nom-utilisateur2:$1$rRAJj8b6$bAa4BugX0ehWRHdo0Cbks/
nom-utilisateur3:$1$HtWwWac.$AoNSxMUcr.9aw2u5gP5Tu0

Sur ce code vous pouvez voir le nom d'utilisateur à gauche et le mot de passe crypté à droite.

A noter que les webmasters qui sont chez free n'ont pas besoin d'avoir un mot de passe crypté après le nom d'utilisateur. Ce qui donne un code tel que celui-ci:

Exemple de code à insérer sur la page ".htpasswd":
nom-utilisateur1:mot_de_passe
nom-utilisateur2:motdepasse
nom-utilisateur3:password

Pour générer chacune des lignes j'ai créer un outil pour générer un fichier ".htpasswd". En utilisant cet outil vous pouvez obtenir très facilement créer le code à insérer sur la page ".htpasswd". Rendez-vous sur cette page, inscrivez votre nom d'utilisateur et votre mot de passe, puis cryptez-les pour savoir le code qu'il faut insérer sur la page ".htpasswd". Ne perdez pas de vue qu'il faut créer la page "htpasswd" (sans le point pour les utilisateurs de Windows).

Lorsque vous aurez générer le code à l'aide du générateur de code htpasswd pour la page associée vous aurez juste à l'ajouter a votre dossier admin et ce sera fini.

Ressources