proteger fichiers apache

itachi3712
Invité n'ayant pas de compte PHPfrance

25 mars 2010, 10:22

Bonjour à tous,

Je souhaiterais protéger le contenu de fichiers dans certains répertoires de mon site pour emêcher l'accès direct.
J'ai déjà testé les directives "files" et "filesMach" dans .htaccess à la racine des répertoires. Ca fonctionne très bien sauf que certains de ces fichiers sont inclus dans ma page principale et de ce fait emêche l'affichage des images, des css...

Auriez-vous une idée pour empêcher ces accés direct mais que cela reste fonctionnel sur mon site ?

Merci pour vos retours.
Cordialement,

ViPHP
ViPHP | 3300 Messages

25 mars 2010, 18:22

Bonjour à tous,

Je souhaiterais protéger le contenu de fichiers dans certains répertoires de mon site pour emêcher l'accès direct.
J'ai déjà testé les directives "files" et "filesMach" dans .htaccess à la racine des répertoires. Ca fonctionne très bien sauf que certains de ces fichiers sont inclus dans ma page principale et de ce fait emêche l'affichage des images, des css...

Auriez-vous une idée pour empêcher ces accés direct mais que cela reste fonctionnel sur mon site ?

Merci pour vos retours.
Cordialement,
La meilleur option consiste à ne pas avoir les fichiers accessibles à partir de la racine de ton site web considère une arborescence comme ça:

/websites/monsite/
/websites/monsite/htdocs/
/websites/monsite/htdocs/index.php
/websites/monsite/data/
/websites/monsite/data/images/
/websites/monsite/data/css/
/websites/monsite/data/pdfs/

dans ce cas les fichiers ne sont pas accessibles via le serveur web, en revanche rien ne t'empêche de continuer à les utiliser en utilisant php pour aller "chercher" tes fichiers ce qui te permet de rajouter une surcouche de protection, type authentification, ou droits.
Fait du php depuis que ca existe ou presque :)

itachi3712
Invité n'ayant pas de compte PHPfrance

26 mars 2010, 16:21

Bonjour à tous,

Je souhaiterais protéger le contenu de fichiers dans certains répertoires de mon site pour emêcher l'accès direct.
J'ai déjà testé les directives "files" et "filesMach" dans .htaccess à la racine des répertoires. Ca fonctionne très bien sauf que certains de ces fichiers sont inclus dans ma page principale et de ce fait emêche l'affichage des images, des css...

Auriez-vous une idée pour empêcher ces accés direct mais que cela reste fonctionnel sur mon site ?

Merci pour vos retours.
Cordialement,
La meilleur option consiste à ne pas avoir les fichiers accessibles à partir de la racine de ton site web considère une arborescence comme ça:

/websites/monsite/
/websites/monsite/htdocs/
/websites/monsite/htdocs/index.php
/websites/monsite/data/
/websites/monsite/data/images/

J'ai du mal à te suivre...
Si le gars fait afficher le code source de ma page et qu'il constate que le chemin pour accèder à mes fichier css c'est /websites/monsite/css. Je ne vois pas ce qu'il pourrait l'empêcher de saisir l'adresse /websites/monsite/css/nom_du_fichier.css afin de le récupérer.
De plus mes pages ne sont pas accessibles dès la racine du site, il y a bien un répertoire avant.

Si tu peux m'éclairer sur la chose, je suis preneur !

Merci pour ton retour, c'est sympa
/websites/monsite/data/css/
/websites/monsite/data/pdfs/

dans ce cas les fichiers ne sont pas accessibles via le serveur web, en revanche rien ne t'empêche de continuer à les utiliser en utilisant php pour aller "chercher" tes fichiers ce qui te permet de rajouter une surcouche de protection, type authentification, ou droits.

ViPHP
AB
ViPHP | 5818 Messages

26 mars 2010, 17:22

Pour les css, quoi que tu fasse on pourra toujours y accéder puisque c'est le navigateur qui les interprète.

Pour les pdf tu peux mettre un .htaccess qui protégera le répertoire d'un accès extérieur (ou tu peux faire aussi comme dis Nagol, en uilisant un répertoire inférieur à la racine de ton site) et plutôt que de faire un lien de type <a href = "repertoire/mon_pdf"> tu passe une variable php <a href = mapage.php?pdf=mon_pdf> et donc ensuite tu récupère la variable pdf et tu fais afficher ou tu propose le téléchargement de ce pdf en php, car php peut aller dans n'importe où chercher un fichier.

Mammouth du PHP | 985 Messages

26 mars 2010, 18:23

En effet, si tu mets tes css, tes js et tes images en dehors de la racine de ton site -> tu risques d'avoir des surprises...
De plus, cela n'a aucun intérêt que ce soit en terme de sécurité ou autre...

En fait, ce que voulais expliquer Nagol je pense, c'est qu'au lieu de mettre les fichiers sensibles dans un dossier protégé par un fichier htaccess (deny from all), tu peux simplement les mettre en dehors de la racine de ton site web.
Ceci n'est évidemment pas possible pour tous les fichiers qui doivent être nécessairement accédés en direct par le navigateur pour soit les interpréter ou soit les afficher...

Par exemple, tous les fichiers include() et require(), la solution présentée par Nagol est parfaite :)
Modifié en dernier par Dr@ke le 26 mars 2010, 19:35, modifié 1 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2010, 18:45

ce que voulais expliquer Nargol
NAGOL, N-A-G-O-L
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 985 Messages

26 mars 2010, 19:25

Bref, c'est corrigé :roll:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 3300 Messages

27 mars 2010, 05:41

moi je t'en voulais pas draque :)
Fait du php depuis que ca existe ou presque :)

Mammouth du PHP | 985 Messages

27 mars 2010, 07:42

Je ne t'en veux pas non plus :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 mars 2010, 11:05

moi je t'en voulais pas draque :)
DR@KE, D-R-@-K-E

8-|
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer