Astuces ⇒ PHP facebook twitter youtube

sécurite ⇒ & Protéger un dossier avec un htaccess



 Comment empêcher que n'importe qui accède à les  pages  « Administrateur »?

C'est là que les fichiers .htaccess vont bien nous aider : on peut très facilement créer une protection par login/mot de passe qui empêche l'accès à tous les fichiers du dossier.
Il va falloir créer deux fichiers :

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

  2. .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.

Ouvrez un nouveau fichier avec votre éditeur de texte favori. Nous allons écrire des codes qui n'ont rien à voir avec du HTML ou du PHP : ce sont des instructions pour le serveur. Elles vont lui expliquer que seules certaines personnes sont autorisées à accéder au dossier.

Copiez-y ce code :

AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/site/www/administrateur/.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).

il existe une fonction PHP qui va beaucoup nous aider : realpath. Cette fonction donne le chemin absolu vers le fichier que vous indiquez. Vous allez donc faire comme suit pour trouver le chemin absolu.

    1. Créez un fichier appelé chemin.php.

    2. Inscrivez juste cette ligne de code à l'intérieur :

 

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

    2. 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
    1. 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
  1. Supprimez le fichier chemin.php de votre serveur, il ne nous sert plus à rien maintenant qu'il nous a donné le chemin absolu.

  2.  

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 :

marie:4kPHXmIM4HNLg
chalou:4ksjMexdAo3T2
jean:4kqmHXoqiC2sw
ali:4kcM1NGuNqNJE
Dans cet exemple, il y a quatre personnes autorisées à accéder au dossier : 
marie,chalou, jean et ali.

Crypter les mots de passe

Il y a une super fonction PHP qui va nous tirer d'affaire : crypt. Vous lui donnez un mot de passe et elle vous le crypte (ne cherchez pas à savoir comment).

Par exemple, si mon mot de passe est «7astuxes», voici le code PHP que je devrai écrire pour l'obtenir en version cryptée :

Un petit script qui va bien vous être utile  pour crypter .

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

 

Il y a certains cas dans lesquels vous ne devrez pas crypter les mots de passe. Sous WAMP ou sur les serveurs de Free.fr par exemple, vous ne DEVEZ PAS crypter vos mots de passe pour que cela fonctionne. Vous devrez donc les écrire directement. Par exemple :
mateo21:kangourou

 

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.

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.

Le navigateur demande le mot de passe

 

 


Changer le fond
Oregionale Skin
7astuces
Sélectionnez un Fond (11)
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces
Fond de contenu
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces