Niveau: Débutant
Visites de la page: 5498
Commentaire: [1]
|
Date d'ajout: [24-07-2005]
Auteur: Webmaster
|
Sommaire :
Introduction :
Lorsque vous réalisez vos sites, il est souvent utile de pouvoir protéger certains répertoires (zone 'Admin' par ex.) en réservant l'accès aux personnes munies d'un login / mot de passe.
C'est là que la protection HTaccess va être votre plus fort allié, car elle permet de définir de façon sûre les droits d'accès à des fichiers pour certains utilisateurs. Dans cet article, nous allons donc voir comment la mettre en place. Cette protection nécessite de créer deux fichiers nommés:
.htaccess contenant l'adresse du .htpasswd et d'autres options à définir
.htpasswd contenant lui une liste login:mot de passe pour les droits d'accès aux fichiers de chaque utilisateur
A noter que sous la plate-forme Microsoft Windows il n'est pas possible de créer directement sur votre ordinateur un fichier commençant par un point. Vous devrez créer les deux fichiers avec un autre nom tel que htaccess.txt, le transférer sur le serveur, puis le renommer.
Création du fichier .htaccess :
Ce fichier contenant les directives de protection est de la forme suivante:
Code:
|
AuthUserFile /home/local/apache/e/easy-script.com/membres/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès Restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
|
AuthUserFile donne le chemin d'accès depuis la racine du serveur du fichier .htpasswd contenant la liste login / mot de passe des utilisateurs autorisés.
Pour trouver ce chemin d'accès ('path'), PHP fournit la fonction realpath(). Il vous suffit de créer un fichier realpath.php dans lequel vous allez mettre le code suivant:
Code:
|
<?php
echo realpath("realpath.php");
?>
|
Puis placez-le sur la racine de votre FTP. Ouvrez votre navigateur et lancez le fichier realpath.php et vous aurez un résultat du style:
/home/local/apache/e/easy-script.com/realpath.php
Le chemin d'accès de votre site est donc: /home/local/apache/e/easy-script.com/. Il ne vous reste plus qu'à ajouter le chemin vers le fichier .htpasswd et vous aurez votre AuthUserFile qui indique le chemin absolu au fichier .htpasswd.
AuthGroupFile permet de donner l'accès à un groupe d'utilisateurs. Dans notre cas, "/dev/null" signifie "pas de fichier spécifique".
AuthName est la chaîne de caractères qui apparaîtra dans la boîte de dialogue lors de la demande de la saisie login / mot de passe.
AuthType définit le type d'authentification utilisé, ici HTTP standard.
<Limit GET POST>....</Limit> détermine le type d'opérations permises.
require valid-user signifie qu'un utilisateur pour lequel une ligne existe dans le fichier .htpasswd est requis. Nours pourrions avoir require user joe ben pour limiter l'accès aux seuls utilisateurs joe et ben.
Voilà le fichier .htaccess créé, nous pouvons passer au fichier .htpasswd
Création du fichier .htpasswd :
A savoir avant tout que l'usage veut que l'on nomme ce fichier .htpasswd. Or, cela n'est pas une obligation et parfois même recommandé d'utiliser un autre nom par sécurité (d'autant plus difficile à trouver).
Le fichier .htpasswd contient sur chacune de ses lignes le couple login:motdepasse, le mot de passe pouvant ête crypté (recommandé) ou non.
Code:
|
Joe:tot611
ben:18hur13
Jack:0h18F4
|
Protéger la liste de mots de passe :
Crypter les mots de passe
Comme nous l'avons déjà spécifié, il est recommandé de crypter les mots de passe. Pour se faire, PHP propose des fonctions de cryptage dont la fonction crypt() :
Code:
|
<?php
crypt("chaîne à crypter");
?>
|
Pour vous faciliter la tâche, voici un petit formulaire qui va vous permettre de crypter vos mots de passe en ligne:
Créer un nouveau fichier .htaccess
Une deuxième solution pour protéger votre liste de mots de passe est de stocker votre fichier .htpasswd dans un sous-répertoire de votre site web dans lequel vous ajouterez aussi un fichier .htaccess contenant les lignes suivantes:
Code:
|
<Files *>
Deny from all
</Files>
|
Ce fichier .htaccess empêchera tout accès aux fichiers du sous-répertoire, autrement dit au fichier des mots de passe aussi.
Empêcher l'accès à un fichier en particulier :
Par défaut, les restrictions du fichier .htaccess s'appliquent à tous les fichiers du répertoire dans lequel il se trouve et des sous-répertoires. Or il est possible de restreindre l'accès à un ou plusieurs fichiers à l'aide de la balise <Files>
> Exemple de restriction au fichier admin.php:
Code:
|
<Files admin.php>
AuthUserFile /home/local/apache/e/easy-script.com/membres/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès Restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
</Files>
|
Conclusion :
Une fois les deux fichiers créés et placés coté serveur, il ne vous reste plus qu'à les renommer avec le point devant. Maintenant, en vous rendant dans votre navigateur et en appellant des fichiers du répertoire protégé, vous verrez apparaître la boîte de dialogue du type:

Remarque: Chez Free, les mots de passe ne peuvent pas être cryptés ! Pour plus d'infos sur leur propre système de protection HTaccess, Cliquez ici
|
|
|