Imprimer le tutoriel
Fermer la fenêtre

kachouri.com sensible à l'écologieAdoptez l’éco-attitude.
N’imprimez cette page que si cela est vraiment nécessaire

cours et aide informatique
http://www.kachouri.com

Sécuriser des Dossiers htaccess / htpasswd

Tutoriel réalisé par: Mehdi Kachouri Ajouté le 01 Mars 2006
Protégez vos fichiers avec htaccess / htpasswd

Introduction aux htaccess

Les fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires. On peut les utiliser pour protéger un répertoire ou une partie de votre site par une combinaison de nom d'utilisateur : mot de passe stockée dans un fichier .htpasswd, pour changer le nom ou l'extension des pages (url rewriting...), empêcher le hotlink ou encore pour interdire l'accès au répertoire. Bref les .htaccess peuvent être utile dans plusieurs cas.

1. Mise en place des différents fichiers

Cette technique qui marche sur les serveurs Linux, se compose de deux fichiers : ".htaccess" et ".htpasswd". Voyons ensemble ce que doivent contenir ces deux fichiers distincts :

Voyons ensemble certaines possibilités de fichiers ".htaccess", à savoir que toutes les formes ne passent pas sur tous les serveurs, donc à vous de tester en fonction de votre hébergeur.

.htaccess

AuthUserFile /home/4873379185/kachouri/web/kachouri.com/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site Kachouri"
AuthType Basic

Require valid-user

AuthUserFile /home/4873379185/kachouri/web/kachouri.com/.htpasswd
AuthGroupFile /dev/null
AuthName PasswdProtection
AuthType Basic

require valid-user

AuthUserFile {/home/4873379185/kachouri/web/kachouri.com/.htpasswd}
AuthGroupFile {/dev/null}
AuthName "Accès protégé"
AuthType Basic

Require valid-user

AuthUserFile /home/4873379185/kachouri/web/kachouri.com/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic

require valid-user


A présent, voyons ce que doit contenir le fichier .htpasswd. Il contient les nom d'utilisateur et mots de passe que vous choisirez ou un groupe de personnes. Sur certains hébergeurs (je ne préfère pas citer de noms), le mot de passe n'est pas crypté mais en clair. Dans la plupart des cas, il est crypté, pour notre exemple nous allons prendre comme Login : Kachouri et Pass : 123Soleil, ce qui nous donnera ceci selon les cas et l'hébergeur...

.htpasswd

Kachouri:RV5KgxCKbi9sE
Kachouri:123Soleil
Kachouri:$1$Z0k3drvO$vKk6/zLatxl2Vt21fv9so.


Dans ces exemples même s'ils vous paraissent différents c'est pourtant le même mot de passe mais crypté différemment, avec des normes de cryptage différentes, et pourtant cela reste toujours le même mot de passe, à savoir 123Soleil

Vous avez la possibilité si vous le souhaitez de crypter ce mot de passe le cas échéant en cliquant ici :

Générateur de htpasswd cliquez ici !


Nous avons eu ensemble une vue globale de ces deux fichiers, à présent, voyons comment les créer et les mettre en place sur les serveurs.

2. configuration du fichier .htaccess

La seule modification que nous allons apporter à ce fichier est le chemin réel jusqu'à votre fichier .htpasswd, pour indiquer l'endroit où il se situe exactement sur le serveur. Il s'agit du chemin local sur le serveur et nom de l'url que vous voyez dans votre navigateur Internet, donc la chose peut être difficile à savoir à première vue... Mais il vous suffit tout simplement de faire un fichier realpath.php3 et d'y insérer le code php suivant.

realpath.php3


 

 


Voilà ce que doit contenir le fichier de façon à vous renvoyer le chemin local du répertoire dans lequel vous allez le mettre.

Un exemple http://mediation76.ifrance.com/realpath.php3 vous verrez le Path complet, ce qui nous intéresse :)

Tutorial informatique htaccess - htpasswd image


Et oui une fois que nous avons ceci, nous allons créer un répertoire dans lequel nous allons mettre nos deux fichiers .htaccess et .htpasswd sachant que cela est pour notre exemple, mais vous pouvez tout à fait, et cela est un bon conseil même, changer de répertoire pour le .htpasswd car cela sécurise un peu plus les choses.

Pour notre exemple, j'ai envie de sécuriser l'accès au site entier (je vais donc mettre un htaccess à la racine de mon site) par mot de passe et de limiter les utilisateurs, nous devrons dans notre cas modifier ce fichier et l'adapter à notre situation, ce qui donne ceci :

.htaccess

AVANT
AuthUserFile /home/4873379185/kachouri/web/kachouri.com/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site Kachouri"
AuthType Basic

Require valid-user
APRÈS
AuthUserFile /www/sites/1/ifrance.com/m/e/mediation76/site/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site Kachouri"
AuthType Basic

Require valid-user


Il vous faudra prendre votre bloc-note favori et ouvrir les deux fichiers afin de les modifier comme ceci :

 

Et pour le fichier .htpasswd, cela correspond à ceux que nous avons vu plus haut, Login: Kachouri et le Pass 123Soleil

Tutorial informatique htaccess - htpasswd image 2


Une fois cela effectué, plus qu'à envoyer sur le serveur nos deux fichiers à la racine de notre site, Par la suite, lorsque vous allez cliquer sur le lien http://Nom_de_votre_site/ vous aurez une boite de dialogue vous demandant un nom d'utilisateur et un mot de passe. Il ne nous reste plus qu'à donner ce qui nous est demandé à savoir le Login : Kachouri et le Pass 123Soleil. Cochez la case Mémoriser mon mot de passe est pratique, ainsi vous n'aurez plus à le retaper :) comme ceci :

Tutorial informatique htaccess - htpasswd image 3


Vous aurez, à la suite de la page qui est sécurisée ce genre de message dans le cas où vous ne donnez un nom d'utilisateur et/ou mot de passe incorrect (selon les hébergeurs) :

Tutorial informatique htaccess - htpasswd image 4


Petit truc pratique : en mettant le nom d'utilisateur et le mot de passe directement dans l'adresse url de la façon suivante, le serveur ne vous demandera pas le mot de passe à chaque fois :

http://Kachouri:123Soleil@votre_site_web.fr/

Conclusion

Voilà, vous venez de voir comment on utilise les fichiers .htaccess sous Apache, et vous êtes en même de mieux comprendre ainsi leur fonction et surtout utilité. Nous avons pu voir que les fichiers htaccess. et les fichiers .htpasswd peuvent être utilisés dans n'importe quel répertoire ou sous-répertoire, ce qui donne beaucoup de possibilités. Pour une plus grande sécurité, ne jamais mettre les deux fichiers dans le même répertoire, car si quelqu'un voit que vous avez une protection à l'adresse http://www.votre_site_web.fr/admin/ il peut plus facilement essayé de récupérer le fichier http://www.votre_site_web.fr/admin/.htpasswd , même si celui-ci est illisible en tapant uniquement cette url, fort heureusement.