Empêcher l'affichage direct de fichiers "included"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Empêcher l'affichage direct de fichiers "included"

par ZeXr0 » 12 déc. 2006, 01:17

Parfait ! Ce sera super pratique pour uploader des fichiers directement. Merci beaucoup de vos réponses :)

par albat » 12 déc. 2006, 00:36

Aaaaah... SOUS-dossiers !

J'avions pas compris. :oops:

par zeus » 12 déc. 2006, 00:23

Normalement, un .htaccess s'applique à un dossier et toutes son arborescence :?

par albat » 12 déc. 2006, 00:14

Euh, là... je ne sais pas.

Étant l'auteur de la question de ce sujet,
j'ai du mal à en posséder toutes les réponses. ;)

par ZeXr0 » 12 déc. 2006, 00:12

C'est parfait pour les images, de toute façon je pensais faire des tests, mais j'en profite pour voir toute les solutions qui se propose à moi pour trouver ce qu'il y a de mieux pour mes besoins. Et je n'ai pas encore monter le serveur web.

Mais il n'y a aucune façon de mettre un .htaccess qui s'applique à tout les sous-dossier ?

par albat » 12 déc. 2006, 00:08

C'est bien la solution proposée.

Le .htaccess interdit au navigateur, donc au client,
d'accéder directement aux fichiers de certains répertoires.

Le serveur PHP, lorsqu'il pré-interprête les pages PHP
et va chercher les différents éléments (fichiers include, images, etc.),
n'est pas soumis aux mêmes interdictions. Il n'est pas un client...

Et puis, le plus sûr, c'est quand même de faire un petit test, non ? ;)

par ZeXr0 » 11 déc. 2006, 23:59

D'accord, mais es-ce qu'il y aurait une facon de bloquer l'accès à une branche de dossier, par exemple, le dossier Upload, pour tout les utilisateur, mais que le serveur web soit encore capable d'accèder aux images ?

Parce que j'essaie de simplifier au maximum la vie à mes utilisateurs, il vont uploader des données via FTP dans un dossier Upload, et je voudrait que ces fichier ne soit accessible que par le webserveur. Donc je ne veux pas qu'une personne puisse tapper http://bleh.com/upload/image.jpg dans son navigateur. Mais que le server soit quand même capable de l'afficher, ou du moins, que ce soit possible seulement quand l'utilisateur est authentifier.

par albat » 11 déc. 2006, 23:50

La solution utilisant le .htaccess satisfait ta première demande.

Pas la deuxième...

Question au sujet de .htaccess

par ZeXr0 » 11 déc. 2006, 23:46

Es-ce possible de bloquer l'accès au images dans les sous-dossier et les afficher seulement par une page php ?

Es-ce possible aussi si je suis Administrateur du serveur, de pouvoir bloquer l'accès à un dossier et tous ses sous-dossiers sans avoir a mettre un .htaccess dans tout les dossiers ?

par albat » 25 nov. 2006, 00:03

Bien vu, Hubert !
Effectivement, le fichier HTML adopte le format PHP du fichier qui l'inclut.
C'est pas évident au premier abord, mais finalement logique.

Finalement, j'ai opté pour le sous-dossier protégé par un .htaccess.

Merci à vous tous ! =D>

par Hubert Roksor » 24 nov. 2006, 23:55

Ça contraint les fichiers included à être tous en PHP
alors qu'une bonne partie des miens sont en HTML.

Les passer en PHP, rien que pour cette vérification, me paraît un peu lourd.
Attention, à partir du moment où tu charges un fichier par include() le fichier EST du PHP, peu importe son extension. Prends n'importe lequel de tes menus HTML et ajoute
<?php die('OMG'); ?>
...si tu veux le vérifier :) Donc pour les fichiers HTML utilise readfile() plutôt.

Pour le reste, je crois que tout a été dit. L'avantage de stocker les fichiers en dehors du docroot c'est qu'ils sont 100% inaccessibles, même si pour raison x Apache décidait de ne plus respecter les .htaccess

par zeus » 24 nov. 2006, 23:45

Albat demandait s'il y avait une autre alternative que cette solution ;)

par Invité » 24 nov. 2006, 23:29

bonjour je comprend pas trop les différents développements de chacun...

il suffit de mettre tout les fichiers qui vont etre inclus dans un meme repertoire et un .htaccess comprenant

Code : Tout sélectionner

Order Deny, Allow Deny from all
ils ne pourront être affichés directement et les inclusions se feront normalement...

à moins que je n'ai pas bien saisi la question...

par zigz4g » 31 oct. 2006, 15:17

Pourquoi le faire avec un mot de passe ???
Pourquoi ne pas le faire avec l'ip qui serait en 127.0.0.1 ou peut etre mieux l'ip de la machine ???
Faut voir toutes les options que propose les htaccess.

par mcorgnet » 31 oct. 2006, 14:37

Moi je voulais protéger, en plus des fichiers php, les fichiers html.

Malheureusement, c'est pas possible via htaccess, à priori, puisque si tu mets un mot de passe, même si tu le fournis à ton index, l'utilisateur devra taper un mot de passe pour chaque fichier html inclu.

M'enfin j'ai pas exploré toutes les solutions.