Pourquoi mettre en place un .htaccess et .htpasswd
Ce système de sécurisation est utiliser pour restreindre l'accès à certaines parties de votre site aux seuls utilisateurs disposant des identifiants et mots de passe valide. Les utilisations sont diverses :
- sécuriser des espaces d'administration de votre site
- autoriser l'accès à certaines pages dont vous souhaitez dévoiler le contenu uniquement aux visiteurs que vous aurez préalablement choisi
- réserver certains téléchargements à une catégorie de visiteurs
- créer des "espace client" simples
Une fois configuré et installé, le résultat ressemble à ca :
Mot de passe : jaccede
Le fichier .htaccess
Nous allons créer, avec votre editeur de code ou de texte, un fichier contenant des instruction serveur. Ces dernières lui indiquerons que l'accès à ce dossier est limité aux seules personnes disposant d'identifiants de connexion.
Ouvrez un nouveau document et collez y ce code
AuthType Basic
AuthUserFile "/chemin_absolu_du_dossier/.htpasswd"
Require valid-user
"AuthName", c'est le texte qui invitera le visiteur à saisir ses identifiants de connexion
"AuthUserFile" est le chemin absolu menant à votre fichier .htpasswd contenant la liste des utilisateurs autorisés et leur mot de passe respectif.
Le chemin absolu, mais comment je trouve ça ?
C'est très simple, vous allez, avec votre éditeur de code, créer un nouveau document .php que vous placerez par la suite dans le répertoire à protéger.
Dans ce fichier, collez y juste ce petit bout de code :
enregistrez votre fichier sous "chemin.php", dans le dossier à protéger, et uploader le sur votre serveur.
Une fois en ligne, allez chercher ce dossier avec votre navigateur Web en entrant son url. La page affichée, vous verrez une ligne vous indiquant le "chemin absolu" de ce fichier.
Recopiez la dans votre fichier .htaccess, à la ligne "AuthUserFile", en replaçant "chemin.php" par ".htpasswd". Au final, votre fichier .htaccess doit ressembler à ça :
AuthType Basic
AuthUserFile "/home/f2552369/htdocs/espacesecurise/.htpasswd"
Require valid-user
Cet un exemple, votre chemin absolu sera forcement différent !
Enregistrez votre fichier en .htaccess dans le dossier à protéger ; sans autres extensions, pas de .htaccess.html ou .php, juste .htaccess !
Votre .htaccess est terminé, passons à l'identification.
Le fichier .htpasswd
Ouvrez maintenant un nouveau document avec votre editeur de code ou de texte.
Nous allons y définir les noms d'utilisateur autorisés et le mot de passe de chacun sous ce format
Imaginons que vous ayez autorisé 3 personnes à accéder aux fichiers de ce dossier, votre fichier .htpasswd ressemblera à ça :
maurice:cahiervert
thomas:cahierrouge
bertrand:cahierBleu
Une chose important à savoir, les majuscules et minuscules ont une importance dans la saisie de l'identifiant et du mot de passe, une majuscule saisie en minuscule fera échouer l'identification.
Par exemple, bertrand doit absolument saisir "cahierBleu" et pas "cahierbleu", sous peine de voir son accès refusé.
Une fois la liste des personnes autorisées établie, enregistrez ce fichier en .htpasswd (comme pour le .htaccess) dans le dossier à protéger.
Il est possible que vous soyez obligé de crypter vos mot de passe pour un bon fonctionnement, tout dépend de votre serveur.
Dans ce cas, votre fichier .htpasswd conservera la meme syntaxe, les identifiants resterons les memes, mais les mots de passe seront affichés comme language crypté. Votre fichier aura alors cette apparence :
thomas:4kbBKJ2Q7a92.
bertrand:4kW64BMb5dcs6
Comment crypter vos mots de passe ?
Voici le lien d'un crypteur mis au point par Mathieu Nebra connu sous le pseudo "M@teo21" , administrateur du Site du Zéro :
Ce cryptage à une autre utilité : si quelqu'un accède à votre ordinateur, il ne sera pas en mesure de déchiffrer vos mot de passe.
Ne tremblez pas en vous demandant comment retenir ce code ! Au moment de l'authentification, vous entrerez votre mot de passe en écriture "normale". Maurice, par exemple, entrera "cahiervert", meme si son code à été crypté.
Sachez que les liens redirigeant vers ce dossier protégé ne doit pointer ni vers le .htaccess ni vers le .htpasswd, le navigateur demandera une authentification à partir du moment ou l'utilisateur tentera d'accéder à un fichier contenu dans le dossier où vous avez enregistré ces 2 fichiers. Dans l'exemple de ce tuto, vous tentez d'accéder au fichier "demo-htaccess.html" situé dans le dossier "espace_protege" contenant les fichier .htaccess et .htpasswd.
Au final, votre dossier doit ressembler à ca :
Tester
Pour tester le bon fonctionnement de la securisation de votre dossier vous avez 2 options :
- Transferer le dossier sur votre serveur web et le tester en fonctionnement final
- Installer WAMP sur votre ordinateur afin d'effectuer le test en local (ne crypter pas vos mot de passe)
Sachez qu'une verification en local sans recours à un logiciel tiers ne fonctionnera pas, les .htaccess et .htpasswd étant en language serveur.