Protéger l'accès à une page web par mot de passe sur l'hébergeur free.fr

Le but de ce document est d’expliquer la méthode pour protéger l'accès à une page web par mot de passe sur l'hébergeur free.fr (qui est légèrement différente que celle classique).
Le principe est l’utilisation de fichiers
.htpasswd et .htaccess qui sont des fichiers de configuration Apache utilisé par l’hébergeur, permettant de définir des règles bien spécifiques dans un répertoire. Ce type de fichier est utilisé pour protéger un répertoire ou un fichier par un mot de passe.

Le point en début est important pour être compris par Apache, ces fichiers n’ont pas de nom, mais simplement une extension.

I. Création d’un fichier .htpasswd

Le fichier .htpasswd doit contenir la ligne suivante pour un pseudo utilisateur :

pseudo:motdepasse

Si vous voulez autoriser l'entrée à plusieurs pseudos, vous pouvez répéter cette ligne en changeant mot de passe et pseudo en allant à la ligne.

pseudo:motdepasse
administrateur:admin
moderateur:modo

Remarque 1 Ce fichier ne doit contenir ni espaces ni tabulations. De plus, il doit absolument être enregistré en format ASCII, c.a.d. que chaque ligne doit se terminer par les caractères invisibles CR et LF (respectivement RetourChariot et LigneSuivante en français). Pour s’en assurer il est recommandé d’utiliser l’éditeur Notepad++ avec l’option Affichage-Symboles spéciaux-Afficher les symboles de fin de ligne


Sur un serveur "classique", les mots de passe sont cryptés et enregistrés de cette manière dans le .htpasswd.

Chez Free vous ne devez pas crypter les mots de passe. En effet l'hébergeur a désactivé cette fonction. Il suffit donc de mettre les mots de passe en clair dans le fichier les contenant. Il va donc falloir sécuriser davantage le répertoire contenant le fichier avec les mots de passe.

II. Création du dossier \password qui contiendra le fichier .htpasswd:

Dans notre exemple le ficher .htpasswd sera positionné dans le dossier \admin\password

Pour des raisons de sécurité nous allons faire en sorte que ce dossier \password ne soit accessible à personne, y compris vous (sauf en local).

Nous allons alors créer un fichier .htaccess dans le répertoire \password qui permettra de refuser son accès à tout visiteur.

Le fichier .htaccess doit contenir la ligne suivante :

deny from all

Voir remarque 1

Le dossier \admin\password contiendra donc, au minimum les deux fichiers .htpasswd et .htaccess 

III. Protection de la page perso.html

Le but est de protéger la page perso.html par un mot de passe.

Il faut maintenant créer un nouveau fichier .htaccess qui doit se trouver dans le même répertoire que le fichier perso.html

Le fichier .htaccess doit contenir les lignes suivantes :

<Files perso.html>
PerlSetVar AuthFile admin/password/.htpasswd
AuthName "Acces Restreint"
AuthType Basic
require valid-user
</Files>
ErrorDocument 401 /index.html

Voir remarque 1

La valeur admin/password/.htpasswd représente le chemin du fichier contenant la liste des mots de passe.

"Acces Restreint": Vous pouvez modifier le texte que portera la fenêtre qui s'ouvrira pour rentrer le pseudo et le mot de passe, pour informer l'utilisateur de l'accessibilité du dossier. Attention tout de même de ne pas enlever les guillemets, faute de quoi la protection ne marchera pas convenablement.

"ErrorDocument 401" permet de rediriger vers la page d'acceuil si on clique sur le bouton "Annuler"