Page 1 sur 1

Empêcher l'accès à certains répertoires contenant des images

Posté : 23 sept. 2014, 07:51
par FranckGraf
Bonjour à tous,

Je ne suis pas sûr d'être tout à fait au bon endroit pour ma question. Mais comme je me sens débutant, je me suis dit que j'avais au moins la moitié du thème.

mon soucis :
J'aimerais empêcher l'affichage du listing de contenu d'un répertoire via un navigateur.

par exemple
http://monsite.fr/repertoire/images
afficherait le fameux "403 forbidden" et non la liste des fichiers et répertoires

Ce que j'ai tenté:
J'ai mis un fichier .htaccess dans le répertoire en question avec
"Options –Indexes"
ou
"Deny from all".

Mais le problème est que certains dossiers contiennent des images nécessaires au site.

Et, lorsque le htaccess est présent, ces images ne s'affichent plus.

J'espère que quelqu'un pourra m'aider.

Merci d'avance.

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 23 sept. 2014, 08:59
par arnaud69
Bon, ça dépend aussi du nombre de répertoires que tu peux avoir et qui contiennent des images, mais un simple fichier index.php à vide empêchera l'accès.

A chaque création d'un répertoire qui contiendra des images, tu y crées un index.php, et hop, fini. C'est LA solution la plus simple.
(tu es sur un forum php, je suppose que par défaut ton serveur web lit le php).

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 23 sept. 2014, 10:27
par FranckGraf
Merci Arnaud69,

Pour répondre à ta question, oui, pas de problème pour le php.

Pour le fichier index.php, j'avais vu cette solution, mais elle a un (2 dans mon cas) inconvénient :

Je souhaite que les internautes n'ai pas accès à des fichiers pdf dont le nom est le même que certaines images (sauf extension bien sûr).
autrement dit :
On a accès à :
http://monsite.fr/repertoire1/repertoire2/image.jpg
Image qui s'affiche sur le site pour illustrer (avec un clic droit et "afficher l'image" on connait son chemin d'accès).

Si on comprend le fonctionnement du site et si on est malin, on a aussi accès à :
http://monsite.fr/repertoire1/repertoire2/image.pdf

même s'il y a un fichier index.php dans le répertoire.

Sauf qu'il ne faudrait pas que les internautes ai accès au .pdf.

Le deuxième inconvénient pour mon cas, est que j'ai actuellement environ 300 "repertoire2".

Je compte quand même mettre le fichier index.php dans certain répertoire pour limiter un peu les accès, mais s'il y a la possibilité d'être encore plus efficace, je suis preneur.

Merci d'avance

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 23 sept. 2014, 10:54
par jo-jo-123
Bonjour,

La meilleur solution dans ton cas est le .htaccess

Pour bloquer le listage des fichiers :
Options -Indexes

Pour pas qu'il accède au .pdf :
<Files *.pdf>
Deny from all
</Files>

Donc pas besoin de créer 300 index.php :D

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 23 sept. 2014, 12:20
par arnaud69
Pour ma base de données cinéma, sachant que j'ai plus de 300.000 images (sans les miniatures), j'ai géré dynamiquement la création d'un répertoire à 6 chiffre (ex : /data/0/1/2/3/4/5/6) qui stocke les images (en base via l'identifiant du film) avec un nom sur 35 caractères aléatoires (ex : 3e16a03c3d346cff37690a233f54d80c.jpg) et là... plus de problème !

Il faut savoir qu'il y a des limites au système : 32000 et quelques répertoires par répertoire (le grand problème des inodes, table des inodes, etc...)

C'était pour discuter.

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 26 sept. 2014, 14:01
par FranckGraf
Bonjour,

La meilleur solution dans ton cas est le .htaccess

Pour bloquer le listage des fichiers :
Options -Indexes

Pour pas qu'il accède au .pdf :
<Files *.pdf>
Deny from all
</Files>

Donc pas besoin de créer 300 index.php :D
Merci Jo-jo-123, mais j'ai testé et malheureusement avec le "options -indexes", les images contenus dans les répertoires visés ne se listent pas certes, mais elles ne s'affichent pas non plus sur les pages du site.

Et, je ne peux pas changer l'arborescence des répertoires.

Merci quand même.

Je crois que je vais en rester au stade de index.php que je vais dupliquer dans tous les dossier de temps en temps.
avec un nom sur 35 caractères aléatoires
En effet, c'est une solution, mais dans mon cas elle n'est pas possible car le nom des images et des pdf doivent pouvoir être comparé.

Je ne met pas résolu car ce n'est pas le cas, mais si personne n'a d'autre solution. Je me contenterais du moins pire.

Merci encore

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 26 sept. 2014, 19:39
par arnaud69
T'as essayé ça à la racine :

Code : Tout sélectionner

Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all Options -Indexes -FollowSymLinks AllowOverride None Order allow,deny allow from all
Sinon, ça :

Code : Tout sélectionner

Options -Indexes
C'est que dans le répertoire concerné

Re: Empêcher l'accès à certains répertoires contenant des im

Posté : 29 sept. 2014, 09:08
par FranckGraf
Bonjour,
T'as essayé ça à la racine :

Code : Tout sélectionner

Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all Options -Indexes -FollowSymLinks AllowOverride None Order allow,deny allow from all
Non, ça ne fonctionne pas, ça m'affiche ça :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.



Mais, good news, ça :

Code : Tout sélectionner

Options -Indexes
C'est que dans le répertoire concerné
Ça fonctionne, et

Ça aussi :

Code : Tout sélectionner

Options <Files *.pdf> Deny from all </Files>
Donc merci à vous deux et désolé jo-jo-123 d'avoir dit que ça ne fonctionnait pas.

J'avais peut-être mal enregistré le fichier htaccess avant de le déposer dans le répertoire voulu.

D'ailleurs, je l'ai déposé au même niveau que les 300 répertoires à "protéger", La fois d'avant, je l'avais mis dans 1 répertoire au dessus, je ne sais pas si ça a joué.

Merci encore.