Description
Le fichier «.htpasswd» est utilisé pour protéger un site Web ou dossier utilisant l'authentification HTTP avec les fichiers «.htaccess» sous Apache ou définit directement dans le fichier de configuration d'Apache comme, par exemple «/etc/httpd/conf.d/vhost.conf».
Structure du fichier
Il s'agit d'une simple liste d'utilisateur séparé avec un deux-points et suivit par un mot de passe encrypté. Il ne peut y avoir qu'un seul utilisateur et mot de passe par ligne et il n'existe pas un nombre limite d'utilisateur outre la quantité de mémoire disponible sur le système.
Syntaxe
utilisateur:motdepasseencrypter |
Remarques
- ATTENTION ! Il n'est pas possible d'avoir deux niveaux de «.htpasswd» pour un même nom de domaine ou sous-domaine. A l'heure actuelle, les navigateurs Web ne permettent pas cette possibilité, à cause que le navigateur Web lorsqu'il envoie les données d'entêtes aux serveurs Web, le champ «Authorization» ne supporte qu'une signature à la fois. Ainsi, en résumé, si vous avez deux niveaux de «.htpasswd» vous allez constater une boucle infinie n'aboutissant pas (un .htaccess circulaire).
- Les mots de passe peuvent être générer par la ligne de commande «htpasswd» sous Linux ou par l'exécutable «htpasswd.exe» sous Windows lesquels sont fournit avec Apache.
- Devant la démocratisation de l'information et de ses outils que fournit l'Internet, il existe de nombreux sites offrant un «htpasswd generator» permettant ainsi d'encrypter le mot de passe en ligne.
- ATTENTION ! L'algorithme de génération du mot de passe est différent d'une plateforme à l'autre, ainsi sous Linux, il utilise la fonction «crypt()», tandis que sous Windows il utilise un algorithme MD5 de mot de passe haché.
- En théorie, on utilise le nom de fichier «.htpasswd» toutefois, rien n'empêche d'utiliser un autre nom de fichier. Toutefois, il est tout de même recommandé de commencer le nom de fichier par «.ht*» car Apache reconnait par défaut des noms de fichiers commençant par «.ht».
- On peut créer un mot de passe en se basant sur le bout de code PHP suivant :
- <?php
- $MotDePasseClaire = 'monmotdepasseenclaire';
- echo crypt($MotDePasseClaire, base64_encode($MotDePasseClaire));
- ?>
- Le fichier de mot de passe «.htpasswd» ou de mot de passe «ht*» doit avoir correctement fixé ses attributs d'accès; ainsi, on fixera généralement un accès en lecture à «chmod 644» pour les utilisateurs du système d'exploitation UNIX ou les distributions Linux.
- Il est possible de décrypter le mot de passe d'un fichier .htpasswd en utilisant des utilitaires comme «John the Ripper password cracker» (http://www.openwall.com/john/). Par contre, pour le moment, les dictionnaires de mot de passe .htpasswd disponible en ligne sont plutôt absent de la circulation.
- Faille de sécurité : Idéalement on tentera d'éviter de mettre ce fichier dans un emplacement théoriquement accessible par le site Web. Ainsi, la plupart des professionnels choisiront plutôt de mettre ce fichier à niveau supérieur au site Web, soit dans le dossier «/monsite/» plutôt que «/monsite/www/». De cette façon, si une brèche de sécurité est découverte par un individu malveillant sur votre site, il ne pourra pas mettre la main facilement sur la liste des mots de passe de votre site.
- Désactivation : Si une directive «Allow from» est indiqué avec le IP de la machine appelante, vous n'aurez pas de demande de mot de passe de la part du fichier «.htpasswd».
- Vous ne devez pas mettre plusieurs fois le même utilisateur avec plusieurs mots de passe différents, car vous risquez de rendre un utilisateur inutilisable ou peu utilisable dans un contexte réel.
on obtiendra le résultat suivant :
bWmG5hNSCcyLIVoir également
Index des extensions de fichier - Format de fichier : .htaccess
Index des extensions de fichier - Format de fichier : httpd.conf
Index des extensions de fichier - Format de fichier : robots.txt
Système d'exploitation - Linux - Références de commandes et de programmes - htpasswd
Références des codes d'erreurs - 500 Internal Server Error