Différences entre versions de « Utilisation du .htaccess »
imported>LucienPetit |
imported>LucienPetit m |
||
(5 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
Nous abordons ici l'utilisation du <code>.htaccess</code> pour protéger un répertoire : ne pourront visualiser le répertoire protégé que celles et ceux qui s'authentifieront (login + passwd). | Nous abordons ici l'utilisation du <code>.htaccess</code> pour protéger un répertoire : ne pourront visualiser le répertoire protégé que celles et ceux qui s'authentifieront (login + passwd). | ||
− | * Nous supposons que l'URL du site est | + | * Nous supposons que l'URL du site est <nowiki>http://monsite.fr</nowiki> |
− | * Nous voulons protéger le répertoire | + | * Nous voulons protéger le répertoire <nowiki>http://monsite.fr/RepertoirePersonnel</nowiki> |
− | La première chose à faire, est de connaitre le chemin absolu de votre site : par exemple /var/www/monsite ( | + | La première chose à faire, est de connaitre le chemin absolu de votre site : par exemple /var/www/monsite (ça peut être un peu plus compliqué que ça). Un bon moyen, quand on n'a pas accès directement à l'hébergement, est de placer le script php suivant (en général, PHP est disponible sur la plupart des hébergements) à la racine de votre hébergement. |
+ | |||
+ | <?php | ||
+ | phpinfo(); | ||
+ | ?> | ||
+ | |||
+ | Si le script s'appelle info.php, il suffit de lancer l'URL <nowiki>http://monsite.fr/info.php</nowiki> par l'intermédiaire du navigateur. Le résultat du script est très verbeux. Seule une information nous intéresse : le '''DOCUMENT_ROOT'''. Nous supposerons ici : DOCUMENT_ROOT = /var/www/monsite | ||
+ | |||
+ | La logique du .htaccess est ensuite la suivante : | ||
+ | * On place le .htaccess dans le répertoire à protéger | ||
+ | * On indique dans ce .htaccess : | ||
+ | ** que le répertoire est privé | ||
+ | ** qu'on y accède en s'authentifiant (login / MotDePasse) | ||
+ | ** que l'on trouvera les informations d'authentifications, cryptées, dans un autre répertoire | ||
+ | * Enfin, on n'oublie pas de rendre ''invisible'' ce répertoire, aux yeux des autres hébergés, par exemple. | ||
+ | |||
+ | On reprend dans l'ordre : | ||
+ | === Écriture du .htaccess === | ||
+ | AuthUserFile /var/www/monsite/RepertoirePersonnel/prive/.htpassword | ||
+ | AuthName "Espace privé" | ||
+ | AuthType Basic | ||
+ | Require valid-user | ||
+ | |||
+ | * La première ligne indique que les informations d'authentifications se trouvent dans /var/www/monsite/RepertoirePersonnel/prive/.htpasswd (on utilise le DOCUMENT_ROOT récupéré plus haut). | ||
+ | * La deuxième ligne est une chaîne de caractère qui va apparaître à l'internaute, dans une fenêtre d'authentification | ||
+ | * On place ce .htaccess dans le répertoire à protéger (ici RepertoirePersonnel) | ||
+ | |||
+ | === Création du répertoire pour l'authentification === | ||
+ | Ici, on crée le répertoire ''prive'', à l'intérieur du répertoire ''RepertoirePersonnel'' (ce n'est pas une obligation : vous pouvez également placer ce répertoire à la racine de votre site, ou ailleurs). | ||
+ | |||
+ | === Fichier de mots de passe === | ||
+ | Il s'agit donc du fichier .htpasswd (ce peut être un autre nom), que l'on place dans le répertoire ''prive''. Pour créer ce fichier, sous Debian GNU/Linux, on utilise la commande | ||
+ | ''htpasswd'' : | ||
+ | htpasswd -c prive/.htpasswd monlogin | ||
+ | Cette commande crée (option -c) le fichier, en demandant la saisie d'un mot de passe pour l'identifiant monlogin. | ||
+ | |||
+ | Si l'on souhaite donner d'autres identifiants et d'autres mots de passe, on utilise toujours la commande htpasswd, mais en demandant de rajouter les informations dans le fichier : pas d'option -c Pour plus d'aide : ''man htpasswd'' | ||
+ | htpasswd prive/.htpasswd login2 | ||
+ | |||
+ | === Protection du répertoire contenant les mots de passe === | ||
+ | 2 solutions : | ||
+ | * changer les droits sur le répertoire, par exemple en n'autorisant l'accès que en lecture écriture, et pour l'utilisateur www-data (ou équivalent) seulement. Cette solution n'est pas toujours possible. | ||
+ | * protéger le répertoire ''prive'' par un .htacces comprenant : | ||
+ | <Files *> | ||
+ | Deny from all | ||
+ | </Files> | ||
+ | Ce .htaccess interdit à tout le monde de visualiser le répertoire dans lequel il est placé |
Version actuelle datée du 15 juillet 2007 à 17:35
Nous abordons ici l'utilisation du .htaccess
pour protéger un répertoire : ne pourront visualiser le répertoire protégé que celles et ceux qui s'authentifieront (login + passwd).
- Nous supposons que l'URL du site est http://monsite.fr
- Nous voulons protéger le répertoire http://monsite.fr/RepertoirePersonnel
La première chose à faire, est de connaitre le chemin absolu de votre site : par exemple /var/www/monsite (ça peut être un peu plus compliqué que ça). Un bon moyen, quand on n'a pas accès directement à l'hébergement, est de placer le script php suivant (en général, PHP est disponible sur la plupart des hébergements) à la racine de votre hébergement.
<?php phpinfo(); ?>
Si le script s'appelle info.php, il suffit de lancer l'URL http://monsite.fr/info.php par l'intermédiaire du navigateur. Le résultat du script est très verbeux. Seule une information nous intéresse : le DOCUMENT_ROOT. Nous supposerons ici : DOCUMENT_ROOT = /var/www/monsite
La logique du .htaccess est ensuite la suivante :
- On place le .htaccess dans le répertoire à protéger
- On indique dans ce .htaccess :
- que le répertoire est privé
- qu'on y accède en s'authentifiant (login / MotDePasse)
- que l'on trouvera les informations d'authentifications, cryptées, dans un autre répertoire
- Enfin, on n'oublie pas de rendre invisible ce répertoire, aux yeux des autres hébergés, par exemple.
On reprend dans l'ordre :
Écriture du .htaccess
AuthUserFile /var/www/monsite/RepertoirePersonnel/prive/.htpassword AuthName "Espace privé" AuthType Basic Require valid-user
- La première ligne indique que les informations d'authentifications se trouvent dans /var/www/monsite/RepertoirePersonnel/prive/.htpasswd (on utilise le DOCUMENT_ROOT récupéré plus haut).
- La deuxième ligne est une chaîne de caractère qui va apparaître à l'internaute, dans une fenêtre d'authentification
- On place ce .htaccess dans le répertoire à protéger (ici RepertoirePersonnel)
Création du répertoire pour l'authentification
Ici, on crée le répertoire prive, à l'intérieur du répertoire RepertoirePersonnel (ce n'est pas une obligation : vous pouvez également placer ce répertoire à la racine de votre site, ou ailleurs).
Fichier de mots de passe
Il s'agit donc du fichier .htpasswd (ce peut être un autre nom), que l'on place dans le répertoire prive. Pour créer ce fichier, sous Debian GNU/Linux, on utilise la commande htpasswd :
htpasswd -c prive/.htpasswd monlogin
Cette commande crée (option -c) le fichier, en demandant la saisie d'un mot de passe pour l'identifiant monlogin.
Si l'on souhaite donner d'autres identifiants et d'autres mots de passe, on utilise toujours la commande htpasswd, mais en demandant de rajouter les informations dans le fichier : pas d'option -c Pour plus d'aide : man htpasswd
htpasswd prive/.htpasswd login2
Protection du répertoire contenant les mots de passe
2 solutions :
- changer les droits sur le répertoire, par exemple en n'autorisant l'accès que en lecture écriture, et pour l'utilisateur www-data (ou équivalent) seulement. Cette solution n'est pas toujours possible.
- protéger le répertoire prive par un .htacces comprenant :
<Files *> Deny from all </Files>
Ce .htaccess interdit à tout le monde de visualiser le répertoire dans lequel il est placé