Médiaforma

PHP MySQL – Protéger un dossier avec .htaccess et .htpasswd

Print Friendly

Les fichiers .htaccess et .htpasswd permettent de protéger des dossiers et des fichiers sur un site Web.

Pour interdire l’accès à un dossier, définissez le fichier .htaccess comme ceci et stockez-le dans le dossier à protéger :

Options –Indexes

Si un utilisateur essaye d’afficher le contenu de ce dossier avec son navigateur, il obtiendra une erreur 403 en retour :

Pour protéger un dossier et les fichiers qu’il contient par un mot de passe, vous devez définir un fichier .htaccess et un fichier .htpasswd.

Voici le contenu du fichier .htaccess :

AuthName "Zone protégée"
AuthType Basic
AuthUserFile "C:/wamp/www/admin/.htpasswd"
Require valid-user

La première ligne indique le message à afficher dans la boîte de dialogue où sera saisi le login. La troisième ligne indique l’adresse du fichier .htpasswd.

Sous WAMP, il suffit de donner le chemin complet du fichier. Sur un serveur en ligne, utilisez la fonction PHP realpath() pour connaître le chemin absolu du fichier .htpasswd :

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

Voici le contenu du fichier .htpasswd :

user1:pass1
user2:pass2
user3:pass3

etc.

Sous WAMP, le mot de passe est spécifié en clair. Sur un serveur en ligne, le mot de passe doit être crypté avec la fonction PHP crypt(). Par exemple, si votre mot de passe est monmotdepasse, vous obtiendrez sa version cryptée avec cette instruction :

<?php echo crypt('monmotdepasse'); ?>
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

Bonjour, très bon tutorial, qui permet de bien comprendre.
J’ai juste remarqué que la fonction crypt() de PHP ne pouvait pas être utilisé par tous les possesseurs de sites web, qui ne maîtrise pas toujours le PHP. Je me permet de vous présenter un lien qui permet de crypter le mot de passe en ligne, sans avoir à le faire soit même avec un code PHP :
http://www.infowebmaster.fr/outils/crypter-htpasswd.php
C’est simple à utiliser et ça permet de créer rapidement le fichier .htpasswd rapidement.

Bonne continuation.
Tony

Bonjour,

Merci pour ce lien Tony. C’est une alternative intéressante à ce qui est proposé dans l’article.

Pour savoir si la fonction crypt est validée, on peut écrire un petit fichier PHP qui contient l’instruction suivante :
phpinfo();

Bon codage.
Michel MARTIN

Leave a Reply