La protection htaccess


Le : Jeudi 24 Août 2006

La protection htaccess sert à empêcher l'accès à une partie de votre site, ceci par un mot de passe de façon simple et efficace puisque la configuration se passe au niveau du serveur web.
Généralement on s'en sert pour réserver l'accès à un répertoire à un cercle fermé de personnes.

/!\ A savoir : la protection est différente pour l'hébergement chez Free, voir la fin de l'article pour cela.

 

Le fichier .htaccess

Ce fichier contient les directives de protection. Il commence par un point, sous Windows il est impossible de le mettre, il faudra donc le renommer une fois sur votre serveur. Sous Linux attention, il sera donc considéré comme un fichier caché.

        Protection par mot de passe

 AuthUserFile /chemin/vers/votre/fichier/.htpasswd
AuthGroupFile /dev/null
AuthName Protection par mot de passe
AuthType Basic

<limit GET>
require valid-user
</limit>

 

Dans cet exemple, la première ligne consiste à donner le chemin d'accès au fichier .htpasswd, lequel contiendra les logins & mots de passe respectifs des utilisateurs ayant accès à cette zone protégée, ceux-ci étant demandés lors de la connexion au dossier contenant la protection htaccess.

"AuthUserFile" permet de donner des accès par utilisateur (attention, ils sont différents des utilisateurs Unix du système !)
"AuthGroupFile" fait de même avec un groupe d'utilisateurs, la directive /dev/null permettant ici de gérer les accès uniquement par utilisateurs singuliers
"AuthName" donne le titre de la zone protégée
"AuthType" définit le type de protection

Dans ce fichier, on met les directives de restriction d'accès entre les balises "limit".
"require valid-user" signifie qu'il faut que le login et le mot de passe entrés soient inscrits dans le fichier .htpasswd défini au-dessus.
Si vous voulez restreindre l'accès à certaines personnes présentes dans le fichier, vous pouvez sélectionner comme ceci :

 <limit GET>
require user marion germaine paul
</limit>


        Protection par accès restreint

Cela permet de refuser toutes les connexions sauf celles précisées :

 AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic

<limit GET>
order deny,allow
deny from all
allow from .com
</limit>


        Protection par accès partiel

Cela permet d'accepter toutes les connexions sauf celles précisées :

 AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic

<limit GET>
order allow,deny
allow from all
deny from free.fr
</limit>

 

Le fichier .htpasswd

Ce fichier contient les logins & mots de passe respectifs des utilisateurs ayant accès à cette zone protégée, ceux-ci étant demandés lors de la connexion au dossier contenant la protection htaccess.
Il est à noter qu'on peut mettre ce fichier n'importe où, à l'exception du dossier protégé lui-même. Généralement on essaye de le dissimuler un peu par mesure de sécurité.

Il est simple à comprendre, il est sous la forme
utilisateur:motdepassecrypté

Attention ! Les utilisateurs ne sont pas à confondre avec les users Unix du système, ils sont créés par la commande :
$ htpasswd -c utilisateur
Adding password for utilisateur
New password:
Re-type new password:
$

Pour les autres utilisateurs, une fois le fichier créé, c'est pareil, sauf qu'on omet l'option -c mais que l'on ajoute le fichier existant (exemple : htpasswd .htpasswd marion).

 

La configuration de Apache

Si vous êtes chez un hébergeur, la fonctionnalité htaccess devrait être autorisée par défaut, mais vérifiez tout de même si cela ne fonctionne pas. Si vous administrez votre propre serveur, il est à noter qu'il faut modifier le fichier de configuration d'Apache pour permettre cette protection htaccess.
Dans Apache, modifiez le fichier de configuration (généralement httpd.conf ou encore httpd.conf.default...) et ajoutez la directive :

AccessFileName .htaccess

De plus par défaut vous trouverez plus bas la directive :

AllowOverride None

Qui est à remplacer par :

AllowOverride AuthConfig
ou
AllowOverride All

Faute de quoi vous ne pourrez pas redéfinir les droits d'accès à vos fichiers et donc la présence d'un fichier .htaccess n'aura aucun impact sur l'accès à votre dossier/site.

 

Pour Free

Direction là-bas :
http://support.free.fr/pagesperso/scripts2.html

Les fichiers sont un peu particuliers...


by Marion