You are currently viewing Comment protéger un dossier avec .htaccess ?

Comment protéger un dossier avec .htaccess ?

  • Post category:Divers
  • Post comments:0 commentaire
  • Temps de lecture :5 min de lecture

Il faut créer deux fichiers : 

  • Le fichier .htaccess
    Ce fichier contiendra l’adresse du fichier .htpasswd et d’autres options.
  • Le fichier .htpasswd
    Ce fichier contiendra la liste des couples logins/mots de passe, pour chaque personne autorisée à accéder au dossier.

Fichier .htaccess

Le fichier doit contenir les 4 lignes suivantes :

AuthName « Page protégée »
AuthType Basic
AuthUserFile « cheminabsolu/.htpasswd »
Require valid-user

  • AuthName : invite utilisateur ;
  • AuthUserFile : chemin absolu vers le fichier .htpasswd (à mettre dans le même répertoire que le .htaccess ou pas).

Trouver le chemin absolu

  1. Créez un fichier appelé chemin.php :
  2. Envoyez le fichier sur le serveur via FTP dans le dossier à protéger.
  3. Affichez ce fichier PHP dans votre navigateur. Il donne le chemin absolu.
  4. Copiez ce chemin dans votre .htaccess, et remplacez chemin.php par .htpasswd, ce qui nous donne au final par exemple :
  5. Supprimez le fichier chemin.php du serveur (inutile à présent)

Lien vers le script fonctionnel : chemin.php

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

Le fichier .htpasswd

Créez maintenant un nouveau fichier avec votre éditeur de texte.

Le .htpasswd contiendra la liste des personnes autorisées. 

Une personne par ligne, sous cette forme :

login:motdepasse

Le mot de passe sera crypté ou pas (crypté, c’est mieux).

Crypter les mots de passe

On peut utiliser une fonction PHP pour crypter les mots de passe.

Créez un fichier .php avec ce code (ou utiliser le lien fonctionnel ci-dessous). 

<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
  $login = $_POST['login'];
  $pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe
  echo '<p>Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte . '</p>';
}
else // On n'a pas encore rempli le formulaire
{
?>
<p>Entrez votre login et votre mot de passe pour le crypter.</p>
<form method="post">
  <p>
      Login : <input type="text" name="login"><br />
      Mot de passe : <input type="text" name="pass"><br /><br />
      <input type="submit" value="Crypter !">
  </p>
</form>
<?php
}
?>

Source : https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/proteger-un-dossier-avec-un-htaccess

Lien vers le script fonctionnel : CryptACode.php

Envoyer les fichiers sur le serveur

Vous avez maintenant deux fichiers sur votre disque dur : 

htaccess.txt et htpasswd.txt.

Une fois les fichiers déposés sur votre serveur, renommez-les : ajoutez un point devant le nom du fichier et supprimez l’extension .txt..htaccess et .htpasswd


Tous les articles par catégorie

Envie de plus de lecture ? Tous les articles sont listés sur cette page par catégorie.

Si vous avez trouvé une faute d’orthographe, vous pouvez m’en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

Laisser un commentaire