Apache, sécuriser un dossier avec .htaccess

La mise en place d’une zone protégée que ce soit pour les membres ou pour l’administration nécessite d’installer un système d’identification par mot de passe, il ne serait pas très malin de laisser la morte ouverte à n’importe qui à son site surtout sur la partie administration et du côté membre, quel serait l’avantage si leur espace était ouvert à tous.

Nous allons voir les différentes étapes pour la mise en place de cette authentification pour un espace d’administration placé dans un dossier.

Cet article est destiné aux utilisateurs du serveur Apache pour voir son installation, je t’invite à suivre cet article.

L’ensemble des fichiers pour cet article sont disponible sur mon dépôt GITHUB.

L’architecture

Pour cet article, nous allons simplement (dans notre dossier du site), un fichier index.php qui sera l’accueil de notre site et un dossier admin qui contiendra lui aussi un fichier index.php. C’est ce dossier que tu protègeras.

Les fichiers sont directement accessible sur mon dépôt GITHUB.

Préparation des informations

Nous allons avoir besoin de récupérer le chemin absolu du dossier à protéger (« admin« ) ainsi qu’un mot de passe crypté, pour cela, nous allons créer dans le dossier admin, un fichier php qui nous permettra de tout récupérer :

<?php
echo 'Chemin du dossier a securiser : <strong>'.__DIR__.'</strong><br />';

$username = 'username';
$password = 'mot_de_passe';
$encryptedPassword = crypt($password,base64_encode($password));

echo 'Phrase a recopier :<br />';
echo '<strong>'.$username.':'.$encryptedPassword.'</strong>';

?>

Création du fichier .htaccess

A présent, tu vas créer ton ficher .htaccess. Ce fichier est à placer dans le dossier admin.

Attention, il s’agit bien d’un fichier sans nom disposant seulement du point suivi de l’extension.

AuthName "Section administration"
AuthType Basic
AuthUserFile "MON_CHEMIN_ABSOLU\.htpasswd"
Require valid-user

Penses à remplacer MON_CHEMIN_ABSOLU par ce que le fichier précédent t’a fourni.

Création du fichier .htpasswd

Il n’y a aucun obligation que ce fichier se nomme ainsi, d’ailleurs, il est préférable de changer son nom.

Comme pour le fichier .htaccess, il s’agit d’un fichier sans nom mais juste d’une extension.

username:pwd_a_remplacer

pwd_a_remplacer doit être remplacé par le mot de passe générer.

Il peut y avoir plusieurs utilisateurs.

Tester la protection

Maintenant, rends-toi sur l’adresse ton-site.fr/admin/index.php, tu auras le droit à la fenêtre de connexion.

Conclusion

Voici comment mettre en place rapidement une zone sécurisée sur ton site.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.