[APACHE] Interdire l'accès à un dossier
Fermé
Tranquille Emil
-
24 avril 2008 à 18:13
atoross Messages postés 3 Date d'inscription mardi 9 novembre 2010 Statut Membre Dernière intervention 10 novembre 2010 - 10 nov. 2010 à 11:10
atoross Messages postés 3 Date d'inscription mardi 9 novembre 2010 Statut Membre Dernière intervention 10 novembre 2010 - 10 nov. 2010 à 11:10
A voir également:
- Htaccess autoriser l'accès à un dossier
- Dossier appdata - Guide
- Comment autoriser l'accès au stockage android - Guide
- Mettre un mot de passe sur un dossier - Guide
- Vous avez besoin d'une autorisation de la part de administrateurs pour modifier ce dossier - Guide
- Acces rapide - Guide
8 réponses
atoross
Messages postés
3
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
10 novembre 2010
11
10 nov. 2010 à 00:03
10 nov. 2010 à 00:03
Je donne ici une nouvelle explication, plus complète et plus explicite, suite à la réaction de Shiroky ! J'avais écris sous le pseudo Arthur et je n'ai reçu qu'un mail pour m'alerter sur ce sujet. Maintenant je me suis inscrit sur le site.
Vous pouvez aussi tester en ligne ma proposition (voir plus loin). J'espère que j'ai bien répondu à vos questions :-)
Le texte que je donne ici, se trouve également, en version plus colorée, sur https://wiki.bht.fr/index.php/Interdire_l'acc%c3%a8s_aux_r%c3%a9pertoires_d'un_site_web_avec_Apache
Il s'agit ici de montrer comment interdire de voir le contenu d'un répertoire (ne pas pouvoir lire la liste des fichiers ou des sous répertoires) tout en donnant la possibilité d'accéder aux fichiers ou sous répertoires.
Vous pourrez tester mes solutions directement sur http://wiki.bht.fr/apache_tuto/ et http://wiki.bht.fr/apache_tuto2/.
On écarte aussi la solution qui consiste à déposer un fichier tel que index.html, index.php, .htaccess, etc. car pratiquement il faudrait le faire dans tous les répertoires concernés.
Prenons l'exemple de deux arborescences identiques, apache_tuto et apache_tuto2 de répertoires et fichiers suivants :
Les fichiers fic(i).txt contiennent le texte "fic(i)".
apache_tuto
??? dir1
? ??? fic1.txt
? ??? fic2.txt
??? dir2
? ??? fic1.txt
? ??? fic2.txt
??? fic1.txt
??? fic2.txt
apache_tuto2
??? dir1
? ??? fic1.txt
? ??? fic2.txt
??? dir2
? ??? fic1.txt
? ??? fic2.txt
??? fic1.txt
??? fic2.txt
Pour apache_tuto nous allons interdire l'accès au contenu des répertoires mais on peut accéder aux fichiers. Pour apache_tuto2, nous autorisons tout.
Mes illustrations sont données pour un apache2 (2.2.16-3) tournant sous linux(debian). Les fichiers de configuration se trouvent sous /etc/apache2/.
En général la configuration se fait dans /etc/apache2/httpd.conf ou /etc/apache2/sites-enabled/000-default.
Et les configurations restant à faire doivent en général se trouver entre les directive <VirtualHost>, comme par exemple :
<VirtualHost 192.168.0.10:80 >
# ... autre config existant...
<Directory /CheminAbsoluVersLaRacine/apache_tuto>
# je configure ici les droits de apache_tuto
</Directory>
<Directory //CheminAbsoluVersLaRacine/apache_tuto2>
# je configure ici les droits de apache_tuto
</Directory>
# ... autre config existant...
</VirtualHost>
En ajoutant la configuration voulue nous avons alors :
<VirtualHost 192.168.0.10:80 >
# ... autre config existant...
<Directory /CheminAbsoluVersLaRacine/apache_tuto>
Options -Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory //CheminAbsoluVersLaRacine/apache_tuto2>
Options Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
# ... autre config existant...
</VirtualHost>
La seule différence est l'option Indexes ou -Indexes. L'option -Indexes interdit de voir le contenu du répertoire.
Maintenant on peut tester cette configuration en cliquant sur les liens suivants :
cas 1 : on interdit l'accès aux contenu des répertoire mais on accède aux fichiers :
* http://wiki.bht.fr/apache_tuto/
* http://wiki.bht.fr/apache_tuto/fic1.txt
* http://wiki.bht.fr/apache_tuto/dir1
* http://wiki.bht.fr/apache_tuto/dir1/fic1.txt
et
cas 2 : on autorise l'accès aux contenu des répertoire (en fait apache fabrique à la volée une sorte de index.html dans lequel nous avons les liens html vers les fichiers et sous répertoires) et on accède aux fichiers :
* http://wiki.bht.fr/apache_tuto2/
* http://wiki.bht.fr/apache_tuto2/fic1.txt
* http://wiki.bht.fr/apache_tuto2/dir1
* http://wiki.bht.fr/apache_tuto2/dir1/fic1.txt
Vous pouvez aussi tester en ligne ma proposition (voir plus loin). J'espère que j'ai bien répondu à vos questions :-)
Le texte que je donne ici, se trouve également, en version plus colorée, sur https://wiki.bht.fr/index.php/Interdire_l'acc%c3%a8s_aux_r%c3%a9pertoires_d'un_site_web_avec_Apache
Il s'agit ici de montrer comment interdire de voir le contenu d'un répertoire (ne pas pouvoir lire la liste des fichiers ou des sous répertoires) tout en donnant la possibilité d'accéder aux fichiers ou sous répertoires.
Vous pourrez tester mes solutions directement sur http://wiki.bht.fr/apache_tuto/ et http://wiki.bht.fr/apache_tuto2/.
On écarte aussi la solution qui consiste à déposer un fichier tel que index.html, index.php, .htaccess, etc. car pratiquement il faudrait le faire dans tous les répertoires concernés.
Prenons l'exemple de deux arborescences identiques, apache_tuto et apache_tuto2 de répertoires et fichiers suivants :
Les fichiers fic(i).txt contiennent le texte "fic(i)".
apache_tuto
??? dir1
? ??? fic1.txt
? ??? fic2.txt
??? dir2
? ??? fic1.txt
? ??? fic2.txt
??? fic1.txt
??? fic2.txt
apache_tuto2
??? dir1
? ??? fic1.txt
? ??? fic2.txt
??? dir2
? ??? fic1.txt
? ??? fic2.txt
??? fic1.txt
??? fic2.txt
Pour apache_tuto nous allons interdire l'accès au contenu des répertoires mais on peut accéder aux fichiers. Pour apache_tuto2, nous autorisons tout.
Mes illustrations sont données pour un apache2 (2.2.16-3) tournant sous linux(debian). Les fichiers de configuration se trouvent sous /etc/apache2/.
En général la configuration se fait dans /etc/apache2/httpd.conf ou /etc/apache2/sites-enabled/000-default.
Et les configurations restant à faire doivent en général se trouver entre les directive <VirtualHost>, comme par exemple :
<VirtualHost 192.168.0.10:80 >
# ... autre config existant...
<Directory /CheminAbsoluVersLaRacine/apache_tuto>
# je configure ici les droits de apache_tuto
</Directory>
<Directory //CheminAbsoluVersLaRacine/apache_tuto2>
# je configure ici les droits de apache_tuto
</Directory>
# ... autre config existant...
</VirtualHost>
En ajoutant la configuration voulue nous avons alors :
<VirtualHost 192.168.0.10:80 >
# ... autre config existant...
<Directory /CheminAbsoluVersLaRacine/apache_tuto>
Options -Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory //CheminAbsoluVersLaRacine/apache_tuto2>
Options Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
# ... autre config existant...
</VirtualHost>
La seule différence est l'option Indexes ou -Indexes. L'option -Indexes interdit de voir le contenu du répertoire.
Maintenant on peut tester cette configuration en cliquant sur les liens suivants :
cas 1 : on interdit l'accès aux contenu des répertoire mais on accède aux fichiers :
* http://wiki.bht.fr/apache_tuto/
* http://wiki.bht.fr/apache_tuto/fic1.txt
* http://wiki.bht.fr/apache_tuto/dir1
* http://wiki.bht.fr/apache_tuto/dir1/fic1.txt
et
cas 2 : on autorise l'accès aux contenu des répertoire (en fait apache fabrique à la volée une sorte de index.html dans lequel nous avons les liens html vers les fichiers et sous répertoires) et on accède aux fichiers :
* http://wiki.bht.fr/apache_tuto2/
* http://wiki.bht.fr/apache_tuto2/fic1.txt
* http://wiki.bht.fr/apache_tuto2/dir1
* http://wiki.bht.fr/apache_tuto2/dir1/fic1.txt
Voici un exemple interdisant l'accès au contenu du répertoire mais autorisant l'accès au fichiers :
dans les fichiers config de apache :
<Directory "/Mon/web/repertoire/">
Order deny,allow
Allow from all
Options -Indexes
</Directory>
ou dans le répertoire concerné dans le fichier .htaccess :
Options -Indexes
dans les fichiers config de apache :
<Directory "/Mon/web/repertoire/">
Order deny,allow
Allow from all
Options -Indexes
</Directory>
ou dans le répertoire concerné dans le fichier .htaccess :
Options -Indexes
atoross
Messages postés
3
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
10 novembre 2010
11
10 nov. 2010 à 00:37
10 nov. 2010 à 00:37
J'ai (arthur) ajouté une nouvelle explication plus complète : voir atoross 10 nov 2010 à 00:03
Ephares
Messages postés
102
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
29 avril 2009
32
24 avril 2008 à 18:32
24 avril 2008 à 18:32
cherche à créer un petit .htacess a la racine du répertoire concerné avec à l'intérieur du fichier htaccess un petit deny all
Voilà
++
Voilà
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voir la documentation apache :
http://httpd.apache.org/docs/2.2/mod/core.html#options
où l'on trouve :
Indexes
If a URL which maps to a directory is requested, and there is no DirectoryIndex (e.g., index.html) in that directory, then mod_autoindex will return a formatted listing of the directory.
Il faut donc ajouter :
Options -Indexes
http://httpd.apache.org/docs/2.2/mod/core.html#options
où l'on trouve :
Indexes
If a URL which maps to a directory is requested, and there is no DirectoryIndex (e.g., index.html) in that directory, then mod_autoindex will return a formatted listing of the directory.
Il faut donc ajouter :
Options -Indexes
10 nov. 2010 à 11:10
voir aussi ce même texte sur https://wiki.bht.fr/index.php/Interdire_l'acc%c3%a8s_aux_r%c3%a9pertoires_d'un_site_web_avec_Apache#En_utilisant_.htaccess
Cette méthode peut être utile à ceux qui sont hébergés et qui n'ont pas accès fichiers de configuration d'Apache tels que /etc/apache2/httpd.conf.
Reprenons la même arborescence de fichiers et répertoires qui cette fois-ci est nommée apache_tuto3 :
Supposons que votre hébergeur a configuré Apache pour vos répertoire de la façon suivante :
Notez deux différences avec apache_tuto et une différence apache_tuto2 :
* "Options Indexes" autorise l'accès au contenu des répertoires;
* "AllowOverride All" autorise au fichiers .htaccess déposés dans certains de vos répertoires pour vous permettre de configurer localement le comportement d'Apache.
Déposons donc un fichier .htaccess dans /CheminAbsoluVersLaRacine/apache_tuto3 qui contient les lignes suivantes :
Options -Indexes
Nous obtenons alors le même comportement d'Apache que le cas de /CheminAbsoluVersLaRacine/apache_tuto !
Maintenant on peut tester cette configuration en cliquant sur les liens suivants :
cas 3 : on interdit l'accès aux contenu des répertoire mais on accède aux fichiers :
* http://wiki.bht.fr/apache_tuto3/
* http://wiki.bht.fr/apache_tuto3/fic1.txt
* http://wiki.bht.fr/apache_tuto3/dir1
* http://wiki.bht.fr/apache_tuto3/dir1/fic1.txt