Protéger le répertoire d’un site Internet avec Htaccess et Htpasswd

Publié le 20 octobre 2014 Par WOoOinux

Protéger un site Internet avec Htaccess

Les fichiers .htaccess sont des fichiers de configuration des serveurs Apache. Ils permettent :

  • De faire une configuration de PHP spécifique pour un site Internet;
  • De faire de la réécriture d’URL;
  • De gérer les pages d’erreurs;
  • De sécuriser des répertoires par un mot de passe;

Nous allons voir dans ce tutoriel comment sécuriser le répertoire d’un site internet.

1. Création du fichier .htaccess

Dirigez-vous dans le répertoire que vous souhaitez sécuriser puis créez un fichier nommé .htaccess.

Copiez-y le code ci-dessous :

AuthName "Répertoire protégé"
AuthType Basic
AuthUserFile "/home/site/public_html/admin/.htpasswd"
Require valid-user

Il vous faudra adapter les lignes AuthName et AuthUserFile pour qu’il pointe vers le chemin de votre fichier .htpasswd (que vous n’avez pas encore créer mais ça va venir…). Attention, le chemin vers le fichier .htpasswd doit être absolu ! Pour connaître ce chemin, si par exemple vous êtes sur un hébergement mutualisé, il existe une fonction PHP qui va vous permettre d’obtenir cette précieuse information.

2. Connaître le chemin absolu du répertoire à protéger

Créez un fichier nommé path.php et copiez-y le code ci-dessous :

<?php echo realpath('path.php'); ?>

Uploadez ce fichier dans le répertoire que vous souhaitez protéger puis accédez-y via votre navigateur (par exemple) :

http://www.monsite.com/nom_du_repertoire_protege/path.php

Notez bien l’information renvoyée par votre navigateur puis supprimez le fichier path.php.

Éditez le fichier .htaccess et modifiez la valeur de AuthUserFile par l’information que vous avez notez il y a deux minutes en prenant soin de remplacer path.php par .htpasswd dans le chemin obtenu.

3. Créer le fichier .htpasswd

Créez maintenant le fichier .htaccess à l’endroit exacte indiqué par la valeur du champ AuthUserFile contenu dans le fichier .htaccess.

Dans ce fichier vous allez indiquer un identifiant (de votre choix) ainsi qu’un mot de passe (de votre choix aussi) qui devra être crypté. Il existe un site Internet qui permet de générer la ligne que vous devrez coller dans le fichier .htaccess. Il suffira de rentrer un identifiant et un mot de passe et le site nous donnera gentiment la ligne que vous n’aurez plus qu’à copier.

Rendez-vous sur le site http://www.htaccesstools.com/htpasswd-generator/

Indiquez un identifiant ainsi qu’un mot de passe puis cliquez sur le bouton “Create .htpasswd file” :

Choix de l'identifiant et du mot de passe pour le fichier htpasswd

Le site génère le contenu du fichier .htpasswd :

Génération du contenu du fichier .htpasswd

Copiez la ligne générée par le site et collez la dans votre fichier .htpasswd. Sauvegardez le fichier.

Rendez-vous sur votre site et tentez d’accéder à votre répertoire protégé (par exemple) :

http://www.monsite.com/nom_du_repertoire_protege/

Si vous avez correctement suivi le tutoriel vous devriez voir apparaître une boîte de dialogue vous demandant un identifiant ainsi qu’un mot de passe :

Authentification requise pour accéder au répertoire protégéEnjoy !