À la création d’un site web, il existe souvent une zone du site dont vous souhaitez restreindre l’accès, comme l’administration du site ou bien une page que vous ne désirez pas rendre publiques.
Grâce au fichier .htaccess, il est tout à fait possible de protéger par un identifiant et un mot de passe une zone limitée ou l’ensemble d’un site. Cette protection est possible à partir de deux fichiers qui sont les fichiers « .htaccess » et « .htpasswd ».
Le fichier « .htpasswd » contiendra des couples d’identifiants et de mots de passe autorisés à accéder à la zone limitée. Et le fichier « .htaccess » contiendra le chemin d’accès vers le fichier « .htpasswd » ainsi que quelques autres options à définir.
Découvrez dans la suite de cet article comment sécuriser une zone précise de votre site web à l’aide des fichiers « .htaccess » et « .htpasswd ».
Sommaire :
Déposez gratuitement votre projet sur Codeur.com, recevez une quinzaine de devis et sélectionnez le développeur web idéal.
Trouver un développeur webCréer le fichier .htpasswd
La première action à réaliser est de créer le fichier « .htpasswd », à savoir le fichier qui contiendra les combinaisons d’identifiants et de mots de passe.
Pour cela, créez sur votre ordinateur ou directement sur l’hébergement de votre site, un fichier que vous nommerez « .htpasswd » tout simplement.
Vous pouvez accéder aux fichiers de votre site à partir d’un client FTP ou d’une interface fournie par votre hébergeur.
L’emplacement où vous déposerez ou créerez le fichier « .htpasswd » sur votre serveur est important. Il ne devra pas être dans un dossier public auquel tout le monde aura accès, car celui-ci contient les mots de passe de la zone à protéger.
Évitez donc les dossiers publics comme « www » et ses sous-dossiers, où les fichiers des sites se trouvent généralement. Favorisez plutôt le répertoire d’accueil qui est inaccessible par internet. Le chemin de ce répertoire ressemblera souvent à cela « /usr/home/nom_utilisateur »
Trouvez le meilleur développeur web sur Codeur.com
Vos premiers devis en 15 minutes
Gratuit et sans obligation
Déjà plus de 75 000 clients
Créer ou générer un mot de passe chiffré
Comme vous l’avons vu depuis le début de cet article, le fichier « .htpasswd » sert à stocker des identifiants et des mots de passe.
Bien que vous ne mettiez pas ce fichier dans un dossier public de votre hébergement web, il n’est pas sans risque que quelqu’un arrive à accéder au fichier « .htpasswd ».
Dans ce cas, si les mots de passe ne sont pas chiffrés dans le fichier cela engendrera un gros risque pour votre site web puisque des pirates pourraient accéder aux zones protégées de votre site web.
Il est donc essentiel de chiffrer les mots de passe écrits dans le fichier « .htpasswd » pour augmenter la sécurité de votre site si ce fichier venait à « fuiter ».
Vous pouvez crypter un mot de passe manuellement grâce à certaines fonctions dans divers langages de programmation tel que la fonction « crypt » en PHP ». Néanmoins il est plus simple pour les non-initiés d’utiliser un site permettant de générer des mots de passe chiffrés pour votre fichier « .htpasswd ».
Pour générer un mot de passe chiffré, vous pouvez utiliser le site « Alterlinks ». Sur le site Alterlinks, il vous sera demandé de renseigner un nom d’utilisateur et un mot de passe pour générer un couple d’un identifiant et d’un mot de passe chiffré.
Renseignez donc le nom d’utilisateur (1) et le mot de passe associé (2) à l’utilisateur en question, saisissez ensuite de nouveau le mot de passe (3), puis sélectionner la méthode de cryptage « CRYPT » (4) avant de cliquer sur le bouton « Générer / Annuler » (5) pour générer la combinaison chiffrée.
Copiez la combinaison « identifiant:mot-de-passe-chiffré » (6) générée dans l’encadré situé en dessous de la phrase « Copiez-collez ceci dans votre fichier .htpasswd : » et collez-la dans le fichier « .htpasswd » précédemment créé.
Recommencez cette opération pour chaque compte d’utilisateur à créer qui aura l’accès à la zone protégée de votre site en ajoutant chaque nouvelle combinaison d’un identifiant et d’un mot de passe sur une nouvelle ligne du fichier « .htpasswd ».
Lorsque vous aurez créé tous les comptes d’utilisateurs et les aurez ajoutés au fichier « .htpasswd », n’oubliez pas de sauvegarder le fichier qui devrait ressembler à quelque chose comme cela :
Puis, si vous aviez le fichier en local sur votre ordinateur, téléchargez-le dans un dossier non public sur votre hébergement web à l’aide d’un client FTP ou d’une interface fournie par votre hébergeur.
Créer le fichier .htaccess
La seconde étape pour protéger votre site web ou une partie seulement est de créer le fichier « .htaccess ».
Comme pour le fichier précédent « .htpasswd », vous allez devoir créer un fichier que vous renommerez seulement « .htaccess » et rien de plus.
Si vous créez ce fichier en local sur votre ordinateur vous devrez par la suite le télécharger sur votre hébergement web avec l’aide d’une interface dédiée de votre hébergeur ou un client FTP.
Dans tous les cas, que vous décidiez de créer le fichier en local ou directement sur votre hébergement web, l’emplacement du fichier a une grande importance. En effet, c’est l’endroit où se trouve le fichier « .htaccess » qui déterminera à partir de quel dossier, parmi les fichiers de votre site, que la protection sera active.
Par exemple, si vous mettez le fichier « .htaccess » dans le dossier « administration » de votre site ayant pour chemin « /www/sites/www.monsite.fr/administration/ », alors lorsque vous essayerez d’accéder à la page « www.monsite.fr/administration »vous serez bloqué par un message qui vous demandera de vous identifier pour aller plus loin.
Une fois le fichier « .htaccess » créé, ouvrez-le et écrivez les lignes de code suivantes :
AuthType Basic
AuthName "Accès protégé"
AuthUserFile /usr/home/votre_nom_d_utilisateur/www/.htpasswd
require valid-user
Et remplacez les deux valeurs de « AuthName » et « AuthUserFile ».
- AuthName est le texte qui sera affiché à l’utilisateur lorsqu’il essayera d’accéder à la zone protégée. Modifiez le texte entre guillemets par le texte que vous souhaitez afficher.
- AuthUserFile est le chemin absolu vers le fichier « .htpasswd » que vous avez créé précédemment. Vous devrez remonter l’arborescence de votre hébergement à partir de l’emplacement du fichier « .htpasswd » pour assembler le chemin absolu si celui-ci ne vous est pas directement donné.
Lorsque vous aurez terminé d’éditer le fichier « .htaccess », sauvegardez-le et si vous l’aviez édité en local, n’oubliez pas de le télécharger sur votre hébergement web à l’emplacement de votre site où l’accès devra être limité.
Tester la protection
La dernière étape pour protéger votre site internet est de vérifier que cette protection est bien active et qu’il vous est bien demandé un identifiant ainsi qu’un mot de passe pour accéder à la zone protégée de votre site web.
Pour cela, rendez-vous dans la zone de votre site ou la page que vous souhaitiez protéger et si vous vous retrouvez bloqué par un message d’authentification, essayez de vous connecter avec l’un des comptes utilisateurs renseignés dans le fichier « .htpasswd » avec le mot de passe non crypté.
Si vous arrivez à passer l’authentification et donc vous connecter, essayez de nouveau d’accéder à la page, mais cette fois-ci avec un mot de passe erroné. Si dans ce second cas, vous vous retrouvez bloqué alors c’est que le système est fonctionnel et que vous avez réussi à protéger votre site web !
Conclusion
Protéger une certaine zone de son site par un mot de passe est utile pour préserver certaines données ou fonctionnalités sensibles de votre site internet.
La mise en place d’une protection de votre site est rapide à effectuer cependant cela demande de toucher aux fichiers de votre site web ce qui peut créer quelques problèmes si vous ne vous y prenez pas correctement.
N’hésitez donc pas à poster une annonce gratuite sur Codeur.com pour trouver rapidement un freelance qui saura protéger votre site internet par un mot de passe grâce aux fichiers .htaccess et .htpasswd.
Bonjour,
La fonction crypt de PHP ne permet pas de générer une séquence chiffrée avec l’algorithme de chiffrement BCRYPT supporté par les versions « récentes » d’Apache2 (version 2.4.4 minimum datant de 2013 – Debian 9+)
Il convient de privilégier la fonction PHP : password_hash(« PASSWD », PASSWORD_BCRYPT); pour la génération de la séquence chiffrée, les autres algorithmes de chiffrement « gérés par Apache2 » étant dépréciés voir déconseillés (ce qui est le cas de la méthode CRYPT voir première source ci-dessous).
Dans ce contexte et en cas de carence de compétence en développement, il convient de ne pas utiliser le site que vous avez fourni (Alterlink) et de privilégier par exemple https://bcrypt-generator.com/)
Belle journée,
Vincent
Source :
https://httpd.apache.org/docs/2.4/fr/misc/password_encryptions.html
https://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php
https://www.php.net/manual/fr/function.password-hash.php
https://www.php.net/manual/fr/function.crypt.php
Bonjour Vincent,
Merci pour votre complément d’information très intéressant, mais le site bcrypt que vous avez donné en référence est HS. Avez-vous un autre générateur ?
Cordialement,
Pascal