Principe

Le répertoire à protéger doit contenir un fichier nommé obligatoirement .htaccess, dont voici un exemple :

AuthUserFile .htpasswd
AuthGroupFile /dev/null
AuthName "Nom que je veux"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

.htpasswd représente le fichier contenant les mots de passe. Le nom du fichier est quelconque, ainsi que son chemin : il doit simplement pouvoir être vu par le serveur http. Il est recommandé de le mettre dans un répertoire qui ne peut être accédé par http (c'est à dire pas dans votre arborescence www). Une personne mal intentionnée qui pourrait lire ce fichier pourrait lancer des crackers sur celui-ci, dont le principe est de générer une multitude de mots de passe à partir de dictionnaires et de les tester tous (voir plus bas la technique d'authentification).

Créer son fichier de mots de passe


Warning: Undefined variable $id in /home/imedata/www/articles/pass.php on line 27

Warning: Undefined variable $id in /home/imedata/www/articles/pass.php on line 40
Nom :

Warning: Undefined variable $pwd in /home/imedata/www/articles/pass.php on line 41
Mot de passe :

Warning: Undefined variable $pwd2 in /home/imedata/www/articles/pass.php on line 42
Vérification du mot de passe :

Comment ça marche ?

Pour accéder à n'importe quel fichier situé dans le répertoire protégé ou ses sous-répertoires, une authentification simple est exigée. Pour cela, le navigateur doit envoyer au serveur un nom et un mot de passe.

Le serveur crypte le mot de passe à partir du nom de l'utilisateur et compare le résultat avec ce qui se trouve dans le fichier des mots de passe. Le cryptage est réalisé avec la commande crypt d'Unix, qui est un cryptage à sens unique : à partir du mot de passe crypté, on ne peut retrouver le mot de passe en clair. Pour réaliser cette page, j'ai utilisé la fonction crypt de PHP : $pass = crypt($pwd, $id);

L'inconvénient majeur de la technique est que le mot de passe circule en clair sur le réseau ; le principal avantage est qu'elle est simple à mettre en oeuvre. Au final, elle s'impose naturellement pour la protection de parties privées d'un site ne nécessitant par un niveau de sécurité trop important.

Retour