Protéger un dossier avec un .htaccess

    Publicités

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)

Synioa

V
Dec 3, 2012
1,200
1
243
Protéger un dossier avec un .htaccess

Introduction :

Lorsque vous réalisez votre site en PHP, vous êtes souvent amenés à créer une zone « Admin » où l'accès est limité… Et il vaut mieux, vu que les personnes qui ont accès à la zone Admin peuvent en général tout supprimer si elles le désirent.

htaccess : ce fichier contiendra l'adresse du .htpasswd et quelques autres options que vous pourrez définir ;

.htpasswd : ce fichier contiendra une liste de logins/mots de passe, pour chaque personne autorisée à accéder aux pages !


Créer le .htaccess

La première étape est de créer sur votre disque dur un fichier appelé .htaccess. Oui, c'est un fichier qui n'a pas de nom et qui a seulement une extension, à savoir .htaccess

Une fois que votre fichier est crée vous allez copiez ce code.

PHP:
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/site/www/admin/.htpasswd"
Require valid-user


Parmi ces quatre lignes, il y en a deux que vous allez devoir changer :

AuthName : c'est le texte qui invitera l'utilisateur à inscrire son login et son mot de passe. Vous pouvez personnaliser ce texte comme bon vous semble ;

AuthUserFile : là c'est plus délicat ; c'est le chemin absolu vers le fichier .htpasswd (que vous mettrez dans le même répertoire que le .htaccess).


Pour trouvé son chemin absolue Créez un fichier appelé chemin.php.

Inscrivez juste cette ligne de code à l'intérieur :
PHP:
<?php echo realpath('chemin.php'); ?>

Envoyez ce fichier sur votre serveur avec votre logiciel FTP, et placez-le dans le dossier que vous voulez protéger.

Ouvrez votre navigateur et allez voir ce fichier PHP. Il vous donne le chemin absolu, par exemple dans mon cas :

/home/site/www/admin/chemin.php

Copiez ce chemin dans votre .htaccess, et remplacez le chemin.php par .htpasswd, ce qui nous donne au final par exemple :

/home/site/www/admin/.htpasswd

Supprimez le fichier chemin.php de votre serveur, il ne nous sert plus à rien maintenant qu'il nous a donné le chemin absolu.



Créer le .htpasswd


Créer le .htpasswd

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

Le .htpasswd va contenir la liste des personnes autorisées à accéder aux pages du dossier. On y inscrit une personne par ligne, sous cette forme :

login:mot_de_passe_crypté

Au final, votre fichier .htpasswd devrait ressembler à ceci :
PHP:
Pingouin:$1$MEqT//cb$hAVid.qmmSGFW/wDlIfQ81


Code php pour obtenir en version cryptée du mdp choisie.

PHP:
<?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
}
?>

Envoyer les fichiers sur le serveur

Vous avez maintenant deux fichiers sur votre disque dur : .htaccess et .htpasswd.

Lancez votre logiciel FTP.
Transférez les fichiers .htaccess et .htpasswd dans le dossier que vous voulez protéger par un mot de passe.
Vous devriez voir ce qui se trouve à la figure suivante dans votre logiciel FTP.

227406.png



Voilà : désormais, le dossier est protégé. ;-)
Si quelqu'un essaie d'accéder à l'une des pages du dossier (en l'occurrence admin.php), il obtiendra une fenêtre comme celle de la figure suivante lui demandant de se logger.

227407.png



Tutoriel venant du site du zero : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
 
Last edited:

Ben

Master Chief
V
Ancien staff
Mar 3, 2011
4,069
3
944
Un peut partout.
Nice tuto du site du zéro'
Si vous avez un serveur sous apache, ou encore certains blog faut pas oublier d'enlever les balises <LIMIT></LIMIT>
Sinon tous le monde peux accéder aux dossier et fichiers via certains programme ou adon ex: pour mozilla, avec modification de la requête c'est très simple.