le MEMO du WEB développeur
••• Divers •••  Liste des Mémos, astuces et bonnes pratiques

Sécuriser l'accès à un répertoire avec un fichier .htpasswd

Pour imposer la saisie d'un couple identifiant / mot de passe afin de rentrer dans un répertoire de votre site Internet, une des solutions est d'utiliser le fichier .htpasswd.

Pour cela il convient d'ajouter 2 fichiers au répertoire dont vous souhaitez limiter l'accès : .htaccess et .htpasswd.

Dans l'exemple suivant, nous supposeront que nous voulons restreindre par mot de passe, l'acc``es au répertoire admin de notre site Internet.

Fichier .htaccess apellant un fichier .htpasswd

AuthUserFile /home/monsite/admin/.htpasswd 
AuthName "Accès réservé" 
AuthType Basic 
<Limit GET POST> 
require valid-user 
</Limit>

AuthUserFile  doit comprendre le chemin absolu vers votre fichier .htpasswd.
Pour connaitre ce chemin, créez un fichier temporaire, que vous nommerez path.php, insérez le code ci après :

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

et placez le fichier path.php dans votre répertoire /admin et enfin appelez le depuis votre navigateur pour récupére la valeur du chemin absolut; 

Fichier .htpasswd

Créez le fichier .htpasswd et placez le dans le répertoire /admin. Ce fichier contiendra une liste de couple identifiant/mot de passe qui permettront aux utilisateurs de visiter le dossier admin.

Apparence de votre fichier .htpasswd :

identifiant1:mot-de-passe-crypte1
identifiant2:mot-de-passe-crypte2

Il existe pléthore de services en ligne pour crypter vos mot de passe, en voici un exemple.

Se déconnecter d'une connexion par .htpasswd

J'ai mis un moment avant de trouver la technique, cela dit, on se déconnecte automatiquement dès que le navigateur est fermé (Attention pas seulement la fenêtre du navigateur)

L'astuce consiste à créer un fichier deconnexion.php que l'on peut appeler via un lien depuis l'un des fichiers du répertoire admin.
Le fichier deconnexion.php redemande en fait les identifiants de connexion à l'utilisateur, puis le redirige vers la page de votre choix.

<?php
    header('WWW-Authenticate: Basic realm="Accès réservé"');
    header('HTTP/1.0 401 Unauthorized');
    echo '<script type="text/javascript">
             window.location.href = "http://monsite.php";
          </script>';
    exit();
?>
Attention realm doit avoir la même valeur que AuthName dans le .htaccess
publié le 30/05/2014 par Memo Web
Commenter le Mémo :

Rediriger un nom de domaine Gandi vers un hébergement 1&1
Retrouver les coordonnées latitude longitude d'un endroit avec Google Map
Disfonctionnement de WAMP à l'ouverture d'une page php
Afficher une carte Google Map sur son site Internet avec PHP / Javascript
Convertir un pdf en ebook avec Calibre et Sigil
Imposer une taille max aux fichiers uploadés sur le serveur
Rediriger index.php à la racine du site avec le fichier .htaccess
Configurer l'encodage UTF-8 d'une base de données et des fichiers d'un site Internet
Personnaliser la page d'erreur 404
Tutoriel pour afficher et localiser une adresse sur Google Map
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos