Droit d'user apache

WRInaute discret
Bonjour,

Je cherche en vain depuis quelque temps la reponse a ma question pourtant simple, je viens donc a votre secours.

Quel est le chmod (quel numero) a effectuer sur un fichier (un include) pour que celui-ci soit lisible seulement par appache (en locurence par la page qui appel l'include) ?

ainsi donc j'ai besoin que si on lance cet include dans le navigateur on doit voir une page "forbidden". j'ai essaye une panade de numero (chmod) et c'etait impossible de voir l'include via le navigateur, mais egalement de l'inclure; ou soit incluable mais visible egalement dans le navigateur

Merci
 
WRInaute discret
Quand tu visualises une page, tu n'y accède pas avec tes droits (puisque le serveur ne te connais pas) mais avec les droits apache.

Apparemment, ce que tu veux faire, c'est interdire à un fichier php d'être exécuté directement.

La méthode "normale" pour ce genre de chose, c'est de définir une variable globale dans le script root (ou les pages que tu acceptes d'utiliser directement). Ensuite, les pages que tu inclues doivent vérifier que cette variable a bien été initialisée et donc qu'il s'agit bien d'un include et non d'un appel direct.

(edit)
Tiens visiblement, t'es aussi au pays de la guinness :D
Il fait beau à cork ?
 
WRInaute accro
A ton avis, quand tu lis le fichier avec ton navigateur, qui le lit pour te l'envoyer? Ah ben c'est Apache.

Donc il est effectivement impossible par ce biais de permettre l'inclusion mais pas la lecture.

Par contre tu peux:
- placer le fichier en dehors de l'arbo visible par Apache (par exemple si ta racine c'est /home/moi/www/htdocs, tu peux le mettre dans /home/moi/www/includes). C'est probablement la meilleure solution en fait.
- en interdire l'accès via un .htaccess (éventuellement combiné avec des sections <Directory>, <Location> ou <Files> ou leur équivalent en *Match).

Jacques.
 
WRInaute discret
2dm a dit:
Quand tu visualises une page, tu n'y accède pas avec tes droits (puisque le serveur ne te connais pas) mais avec les droits apache.

Apparemment, ce que tu veux faire, c'est interdire à un fichier php d'être exécuté directement.

La méthode "normale" pour ce genre de chose, c'est de définir une variable globale dans le script root (ou les pages que tu acceptes d'utiliser directement). Ensuite, les pages que tu inclues doivent vérifier que cette variable a bien été initialisée et donc qu'il s'agit bien d'un include et non d'un appel direct.

(edit)
Tiens visiblement, t'es aussi au pays de la guinness :D
Il fait beau à cork ?


Merci pour vos reponse,

En fait j'utilise deja le systeme de la variable globale, mais avec un define. je voulais une protection en plus, mais j'espere qu'un fichier index a la racine du dossier sera suffisant, et peut etre un htaccess en plus :)

pour preciser j'ai oublie de mettre a jour mon profil, je suis maintenant en Slovaquie :), et quelle question, t'as deja vu le soleil en irlande toi ??? :)
 
WRInaute discret
Ba je reviens de courir et le temps était pas trop mal. Un peu frais au début, mais sur la fin, c'était parfait :)

Pour ton test d'inclusion, la solution idéale dépend de ton cas d'utilisation. Soit tu règles le problème via php, soit comme l'a indiqué jacques, t'utilises apache.
 
Discussions similaires
Haut