Sur un site web il peut être recommandé de sécuriser certains
dossiers tels que la partie administration. Cela est facilement possible
si la partie administration se trouve dans un dossier spécifique
(exemple: un dossier appelé "admin"). Une méthode assez simple pour très bien sécuriser un tel dossier serait d'utiliser un fichier ".htpasswd". Cet article va expliquer dans ce tutoriel comment réaliser une telle protection.
En entrant les bonnes données (le nom d'utilisateur avec son mot de passe associé) alors il est possible d'accéder au dossier. Dans le cas contraire la page ne sera pas autorisé à être ouverte et il y aura alors une erreur 401 (aussi appelée "Unauthorized").
Le dossier htaccess doit être créé à partir du bloc-notes windows 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". Cela pose souvent un soucis car le système d'exploitation Windows ne permet pas de commencer un nom de fichier par un point. En raison de ce problème, il faut uniquement appeler le fichier "htaccess" pour le moment (sans le premier point et sans extension).
Le fichier htaccess doit ensuite contenir le code suivant:
Il est tout d'abord obliger d'utiliser une page PHP. Pour vous donner un exemple clair, il est recommandé de créer une page exprès pour déterminer ce chemin absolu (que vous pouvez appelé "chemin-absolu.php" par exemple). Dedans il faut utiliser la fonction PHP "realpath". Autrement dit, il faut copier le texte suivant sur la page que vous venez juste de créer:
Une fois la page ouverte, vous obtenez un chemin. C'est ce chemin qui va être utilisé dans le code donné précédemment (à la place où il y avait AuthUserFile).
En ayant suivis correctement les instructions, le fichier appelé "htaccess" est près à être utilisé. Il faut l'uploader sur le serveur. Finalement, il est possible de renommer le nom du fichier sur le serveur en ajoutant un "point" au début du nom "htaccess". De ce fait, le fichier s'appelle dorénavant ".htaccess".
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 malveillant). Voici un exemple concret de code envisageable dans un tel fichier (exemple fictif):
Il ne faut pas perdre de vue qu'il faut créer la page "htpasswd" (sans le point pour les utilisateurs de Windows) puis penser à rajouter le point au début du nom du fichier.
Tutoriel
Il faut noter que la méthode décrite dans ce cours s'utilise avec des serveurs qui fonctionnent sous Apache. Si un autre type de serveur est utilisé sur un site web, 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 demander un nom d'utilisateur et un mot de passe. Une fois le tutoriel terminé, voici un exemple de la fenêtre qui s'ouvrira lorsqu'un utilisateur souhaitera accéder au dossier sécurisé:En entrant les bonnes données (le nom d'utilisateur avec son mot de passe associé) alors il est possible d'accéder au dossier. Dans le cas contraire la page ne sera pas autorisé à être ouverte et il y aura 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 sécuriser un dossier et permet d'indiquer au serveur où se situe le pseudo et le mot de passe. Ainsi, le serveur saura quel sont les utilisateurs autorisé à accéder à la zone sécurisée.Le dossier htaccess doit être créé à partir du bloc-notes windows 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". Cela pose souvent un soucis car le système d'exploitation Windows ne permet pas de commencer un nom de fichier par un point. En raison de ce problème, il faut uniquement appeler le fichier "htaccess" pour le moment (sans le premier point et sans extension).
Le fichier htaccess doit ensuite contenir le code suivant:
Code pour le fichier .htaccess:
Toutefois, la ligne "AuthUserFile" doit impérativement être modifiée
pour qu'elle corresponde à votre site. Chaque site web possède un chemin
absolu qui diffère selon les hébergeurs. Par conséquent, il est
nécessaire d'effectuer une certaine manipulation pour le connaitre.
Voici la manipulation a effectuer pour connaitre le chemin absolu de
votre hébergeur.
AuthName "Page d'administration protégée, veuillez vous identifier"
AuthType Basic
AuthUserFile "/home/dossier/www/votre-repertoire/admin/.htpasswd"
Require valid-user
AuthType Basic
AuthUserFile "/home/dossier/www/votre-repertoire/admin/.htpasswd"
Require valid-user
Il est tout d'abord obliger d'utiliser une page PHP. Pour vous donner un exemple clair, il est recommandé de créer une page exprès pour déterminer ce chemin absolu (que vous pouvez appelé "chemin-absolu.php" par exemple). Dedans il faut utiliser la fonction PHP "realpath". Autrement dit, il faut copier le texte suivant sur la page que vous venez juste de créer:
Code PHP à insérer sur la page "chemin-absolu.php":
Une fois que c'est fait, il ne reste plus qu'à uploader la page
"chemin-absolu.php" sur le serveur (dans le dossier à sécuriser, tel que
"admin"). Puis, il faut ouvrir cette page dans un navigateur web (par
exemple à la page: http://www.example.com/admin/chemin-absolu.php).
<?php
echo realpath("chemin-absolu.php");
?>
echo realpath("chemin-absolu.php");
?>
Une fois la page ouverte, vous obtenez un chemin. C'est ce chemin qui va être utilisé dans le code donné précédemment (à la place où il y avait AuthUserFile).
En ayant suivis correctement les instructions, le fichier appelé "htaccess" est près à être utilisé. Il faut l'uploader sur le serveur. Finalement, il est possible de renommer le nom du fichier sur le serveur en ajoutant un "point" au début du nom "htaccess". De ce fait, le fichier s'appelle dorénavant ".htaccess".
Création du fichier htpasswd
Cette étape est beaucoup plus simple (le plus dur à été effectué). 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é. Il faut savoir qu'il peut y avoir autant d'utilisateur que souhaité.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 malveillant). Voici un exemple concret de code envisageable dans un tel fichier (exemple fictif):
Exemple de code à insérer sur la page ".htpasswd":
Sur ce code, il est possible de voir le nom d'utilisateur à gauche et le mot de passe crypté à droite.
nom-utilisateur1:$1$hdkZ3x0v$iADjlj7l3V6T8dDuv3UhB/
nom-utilisateur2:$1$rRAJj8b6$bAa4BugX0ehWRHdo0Cbks/
nom-utilisateur3:$1$HtWwWac.$AoNSxMUcr.9aw2u5gP5Tu0
nom-utilisateur2:$1$rRAJj8b6$bAa4BugX0ehWRHdo0Cbks/
nom-utilisateur3:$1$HtWwWac.$AoNSxMUcr.9aw2u5gP5Tu0
A noter que les webmasters qui ont un espace
d'hébergement sur free n'ont pas besoin d'avoir un mot de passe crypté.
Ce qui donne un code tel que celui-ci:
Pour générer chacune des lignes il y a un outil pour générer un fichier ".htpasswd".
En utilisant cet outil, il est possible d'obtenir très facilement 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". 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.
Exemple de code à insérer sur la page ".htpasswd":
nom-utilisateur1:mot_de_passe
nom-utilisateur2:motdepasse
nom-utilisateur3:password
nom-utilisateur2:motdepasse
nom-utilisateur3:password
Il ne faut pas perdre de vue qu'il faut créer la page "htpasswd" (sans le point pour les utilisateurs de Windows) puis penser à rajouter le point au début du nom du fichier.
Aucun commentaire :
Enregistrer un commentaire