====== Protéger un répertoire chez Free.fr ====== Free restreint le contrôle de l'utilisatrice sur les droits des répertoires. Ils sont systématiquement lisibles par toute internaute. * Il faut donc impérativement protéger les fichiers de configuation des sites. * On peut vouloir protéger sélectivement certains répertoires ===== Protéger les fichiers de configuration ===== Le fichiers de configuration contiennent des informations critiques telles que login, mot de passe, nom de base de données, etc. Pour les protéger on interdit à tous les internautes l'accès en lecture au **dossier** contenant ces fichiers. Pour ce faire, on crée un fichier texte dénomé ".htaccess" (sans les guillemets et commençant bien par un point) que l'on place dans le répertoire contenant les fichiers à protéger. Ce fichier doit contenir une simple ligne de texte : deny from all Et c'est tout ! ;-) On peut appliquer cette technique d'interdiction intégrale (//deny from all// signifie //interdire à touTEs//) à d'autre répertoires (tous, si l'on veut). Lorsqu'on utilise un CMS (Drupal, Spip, DotClear..) les données restent accessibles aux utilisatrices autorisées par le CMS) ===== Laisser l'accès à certaines utilisatrices ===== On peut aussi vouloir laisser un accès direct (sans passer par un CMS) à certaines utilisatrices. Dans ce cas, on commence par créer, à la racine de site, un répertoire qui contiendra les logins et les mots de passe des personnes autorisées. S'il n'y a pas de conflit avec les répertoires existants, appelons ce répertoire "//controle//". Dans le répertoire controle, on crée un fichier nommé "//amies//". Ce fichier contiendra les logins et mots de passes, au format suivant : login1:mdp1 login2:mdp2 La syntaxe du fichier //amies// est donc simple : * un couple login, mot de passe par ligne * le login est séparé du mot passe par ":", sans espace avant ni après * les mots de passes sont "en clair", non chiffrés Vu son contenu, le fichier //amies// doit être protégé. On le fera avec la technique de protection intégrale vue précédemment. On ajoute donc au répertoire //controle//, un fichier .htaccess contenant la ligne "deny from all". On se retrouve donc avec l'organisation suivante : racine du site controle .htaccess amies N'oublions pas que nous voulons protéger sélectivement un ou plusieurs dossiers. Pour l'explication, supposons que ce dossier s'appelle "//photos_amies//" et qu'il se trouve à la racine du site. Dans //photos_amies// on crée un fichier .htaccess, plus compliqué que celui que l'on a vu jusqu'ici. Il contiendra les quatre lignes suivantes : PerlSetVar AuthFile /controle/amies AuthName "Identification nécessaire" AuthType Basic require valid-user Examinons ce qu'il contient : * la première ligne indique le **chemin**, **depuis la racine du site**, conduisant au fichier des logins et mots de passe protégeant le répertoire contenant ce fichier .htaccess, * la deuxième ligne indique, entre quotes, le texte qui sera affiché à l'internaute qui tentera d'accéder au répertoire, * les troisième et quatrième lignes indiquent le type de verification à effectuer ; on n'y touche pas. L'organisation des répertoires est la suivante : racine du site controle .htaccess amies photos_amies .htaccess photo1 photo 2 ===== Sophistiquer le contrôle d'accès ===== Comme le suggère l'exemple, on peut être conduite à créer plusieurs fichiers de mots de passe (amies, collègues, parents..), correspondant à différents groupes d'utilisatrices. Tous ces fichiers seront rangés dans //controle//. Chaque répertoire protégé contiendra une version adaptée de .htaccess où sera indiqué le chemin vers le fichier de mots de passe protégeant ce repertoire. On peut également remplacer tous les fichiers .htaccess du type "deny from all" par des fichiers d'accès sélectif. Ce n'est pas toujours un mieux. Dans les exemples présentés où nous avons choisi une protection intégrale, notre choix était justifié ; ce n'était pas qu'une simplification pédagogique.