| Aides et tutos : Scripts : | |
|
Restriction d'accès avec .htaccess |
Par mot de passe
Par adresse IP
Par nom de domaine
Nota pour les 3 types de restriction
Par mot de passe :Haut
Il peut y avoir sur votre site certains répertoires que vous souhaitez protéger des yeux indiscrets !
Qu’il soit bien entendu ici, que la meilleure protection possible pour un document passe par la non publication sur le Web, quelle que soit le niveau de protection du serveur ou du répertoire !
Ces limitations étant exprimées, il est souvent utile ou dans certains cas indispensable d’avoir dans un répertoire des informations telles que le mot de passe d’accès à votre base de données ou les statistiques de fréquentation de votre serveur...
Dans le cadre des hébergements sur serveur Apache, il est aisé de soustraire certains répertoires à la curiosité du public. Là encore, le fichier .htaccess va vous rendre service !
Le mode opératoire en est simple et s’appuie sur un deuxième fichier qui contiendra les noms et mots de passe des personnes autorisées à accéder au contenu du répertoire.
Dans un fichier .htaccess, écirvez les informations suivantes :
AuthUserFile /home/repertoire/.htpasswd
AuthGroupFile /dev/null
AuthName "Acces Restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
/home/repertoire est l'emplacement du fichier .htpasswd, qui contient les mots de passe. Il ne s'agit pas d'une URL, mais d'un chemin
d'accès, autrement dit, vous ne devez pas mettre http://www.monsite.com /!\ C'est le chemin d'accès depuis la racine du serveur, soit du genre
/home.14/m/a/x/pseudo/www/
Acces Restreint est le message à afficher lors de l'arrivée au répertoire protégé, il apparaîtra dans la boîte de dialogue au moment de la saisie du nom et du mot de passe.
AuthGroupFile /dev/null permet de donner un droit d’accès à un ensemble d’utilisateurs faisant partie d’un même groupe et est rarement utilisée dans le cas de sites Web
personnels. Ici, « /dev/null » est l’équivalent Unix de « nulle-part » ou « pas de fichier spécifique »...
AuthType Basic détermine le type d’authentification utilisé, dans notre cas l’authentification HTTP standard.
<Limit GET POST> ... </Limit> détermine le type d’opérations permises. GET s’applique à la majorité des pages Web, PUT est utilisé par certains scripts ou
éditeurs pour faire de l’upload sous protocole http. Il est important de mettre GET et POST en majuscule sur les dernières versions d’Apache.
require valid-user signifie littéralement qu’un utilisateur valide est requis, à savoir un utilisateur pour le nom duquel une ligne existe dans le
fichier .htpasswd. Un exemple pourrait être "require user pierre paul" pour limiter l’accès aux seuls utilisateurs pierre et paul
|
Voyons maintenant le fichier .htpasswd :
C’est très simple, pour chaque personne autorisé, ce fichier contient une ligne sous la forme nom :mot de passe crypté !
La seule difficulté est de crypter le mot de passe... Soit vous avez une apllication vous permettant de crypter les mots de passe, soit vous pouvez utiliser ce formulaire :
|
|
La clé de deux caractères demandée permet de diversifier les mots de passe générés. Ces deux caractères constituent ce qu’on appelle le "sel" (salt) de l’encryptage...
|
Par exemple, pour un pseudo "moi" et un mot de passe "123" avec une clé de "2", vous devrez mettre dans le fichier .htpasswd la ligne moi:2$iPhdHr.qmpw
(Entrez le pseudo test et le mot de passe test)
Par adresse IP :Haut
Vous pouvez interdire l'accès à votre site à partir de certaines adresses IP !
Rappel : une adresse IP est constitué de quatre nombres de 0 à 255 séparés par des points, par exemple 129.199.121.1
Pour interdire l'accès à une adresse IP précise :
order allow,deny deny from 129.199.121.1 |
Pour, au contraire, autoriser l'accès à une seule adresse IP précise :
order allow,deny allow from 129.199.121.1 |
Pour restrindre l'accès à une plage d'adresse IP :
order allow,deny
allow from 130.240 => On autorise l'accès à toutes les adresses IP commencant par 130.240
deny from 120.119.3 => On interdit l'accès à toutes les adresses IP commencant par 120.119.3
deny from all => On interdit l'accès à toutes les adresses IP
allow from all => On autorise l'accès à toutes les adresses IP |
La ligne order allow,deny ne doit apparaître qu'une seule fois si vous utilisez les deux types de restriction ci-dessus !
Exemple 1
order allow,deny
deny from 129.199.121.1 => On interdit l'accès à l'adresse IP 129.199.121.1
deny from 102.30 => On interdit l'accès à toutes les adresses IP commencant par 102.30
allow from all => On autorise l'accès à toutes les autres adresse IP
En clair, tout le monde pourra accéder au fichier, sauf les adresses IP mentionnées... |
Exemple 2
order allow,deny
allow from 129.199.121.1 => On autorise l'accès à l'adresse IP 129.199.121.1
deny from all => On interdit l'accès à toutes les autres adresse IP
En clair, seul l'adresse IP 129.199.121.1 pourra avoir accès... |
Par nom de domaine :Haut
On peut également interdire l'accès à des fichiers pour certain nom de domaine ! Par exemple, si vous n'aimez pas les sites avec un .info, et que vous n'aimez pas le moteur
de recherche google; vous pouvez interdire l'accès au fichier si le visiteur vient de google ou d'un site avec un domaine .info
Pour interdire l'accès à un site précis :
order allow,deny deny from msn.com .be
Ici, si un visiteur vient du site http://www.msn.com ou vient d'un site avec le domaine .be , il n'aura pas accès au fichier. |
Pour, au contraire, autoriser seulement l'accès à un site :
order allow,deny allow from msn.com .be
Ici, seul un visiteur venant du site http://www.msn.com ou d'un site avec le domaine .be aura accès au fichier. |
Exemple 1
order allow,deny
deny from msn.com msn.fr => On interdit l'accès à un visiteur venant du site de msn allow from all => On autorise l'accès aux autres
|
Exemple 2
order allow,deny allow from msn.com msn.fr => On autorise l'accès à un visiteur venant du site de msn
deny from all => On interdit l'accès aux autres visiteurs
|
Nota pour les 3 types de restriction :Haut
Note pour les restrictions d'accès présentée ci-dessus :
Vous pouvez appliquez ces restrictions pour un seul fichier seulement ! Pour cela;
<Files votre_repertoire/votre_fichier.html>
Votre restriction (par mot de passe, par adresse IP ou par nom de domaine...)
</Files>
|
Retour |
|