Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour,

Je souhaite créer un htaccess qui protège mes répertoires sensibles mais qui autorise mes programmes PHP à faire appel à des fichiers contenus dans ces répertoires afin qu'ils puissent fonctionner. J'ai essayé ceci mais ça ne fonctionne pas. Les répertoires sont tellement bien protégés que mes programmes PHP n'y ont pas accès :


AuthName "Répertoire protégé"
AuthType Basic
AuthUserFile "/***chemin***/.htpasswd"

Order Deny, Allow
Deny from all
Allow from .sfr.fr

J'ai tenté aussi Order Allow, Deny , mais rien n'y fait.

Je vous remercie si vous avez une idée de correction.

Modifié par dimi3
Posté
un htaccess qui protège mes répertoires sensibles mais qui autorise mes programmes PHP à faire appel à des fichiers contenus dans ces répertoires

Une simple ligne dans le htaccess suffit :

deny from all

Cette ligne empêchera tout accès par http mais n'aura aucun impact sur les accès internes comme les include php.

Posté

Oui, si on parle bien de scripts php locaux qui accèdent directement aux fichiers en local (i.e. pas via des choses comme fsockopen, curl, ou de façon générale une URL plutôt qu'un chemin), le .htaccess n'a aucune espèce d'importance, et ne peut rien bloquer du tout.

Note aussi que les Auth* sans un "require quelque-chose", ça ne sert strictement à rien.

Jacques.

Posté

Merci pour vos réponses.

Le visiteur ouvre les fichiers du répertoire protégé via un menu dont les items sont rédigés ainsi :

<a href="../repertoire/fichier.php>

Ainsi un htaccess contenant la ligne deny from all le bloque. Comment faire pour n'autoriser l'accès au répertoire que par un lien de ce type ? Je voudrais que l'utilisateur utilise les fichiers mais que ceux-ci ne puissent être téléchargés ou simplement que son code ne puisse être affiché... Est-ce possible ? Sinon, quelle autre méthode conviendrait ? Merci encore...

Posté

Bonjour,

Ton navigateur n'envoie pas "../repertoire/fichier.php" vers le serveur, mais &quot;http://www.ton_site.com/repertoire/fichier.php".

Ce que tu veux faire exactement n'est pas tout à fait clair pour moi. Peut-être pourrais-tu tester les referrers si ton intention est d'interdire l'accès direct aux fichiers à partir d'autres sites (l'interdiction ne sera pas complète) ? Ou peut-être peux tu réexpliquer ce que tu cherches à faire ?

Jean-Luc

Posté

...Peut-être pourrais-tu tester les referrers si ton intention est d'interdire l'accès direct aux fichiers à partir d'autres sites (l'interdiction ne sera pas complète) ?

Jean-Luc

merci.

Oui, je voudrais que mes visiteurs puissent utiliser mes fichiers programmes situés dans un répertoire que je ne voudrais pas qu'ils visitent pour en récupérer le code ou les télécharger. J'avais pensé à :

Order Deny, Allow
Deny from all
Allow from .monsite.sfr.fr

mais je n'obtiens pas l'effet escompté. L'exception Allow ne joue pas son rôle. Lorsque l'utilisateur clique sur le lien du menu <a href = "../repertoire/programme1.php>Programme 1</a>, la page programme1.php ne s'ouvre pas, et s'affiche le message :

Forbidden

You dont have permission to access /repertoire/ on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

je ne comprends pas non plus l'avertissement Additionally ....

Posté

Oui, je voudrais que mes visiteurs puissent utiliser mes fichiers programmes situés dans un répertoire que je ne voudrais pas qu'ils visitent pour en récupérer le code ou les télécharger.

Dans ton exemple tu parles de fichiers .php ... or, si Php est correctement installé, un visiteur ne pourra pas récupérer la moindre ligne de programme.

Tout de qu'il aura c'est le résultat de l'interprétation de ta page par Apache/Php, donc une page .html.

Posté

Je ne comprends toujours pas ce que tu veux faire. Si les fichiers sont des scripts PHP, sauf mauvaise configuration, ils ne seront jamais téléchargés; ils sont toujours exécutés sur ton serveur. Par contre, si ce sont des images, des fichiers HTML, du JavaScript, etc, ils sont toujours téléchargés et tu ne peux pas l'empêcher si tu veux que certains navigateurs y aient accès.

Jean-Luc

P.S. Dan est plus rapide que son ombre !

Posté (modifié)

Dans ton exemple tu parles de fichiers .php ... or, si Php est correctement installé, un visiteur ne pourra pas récupérer la moindre ligne de programme.

Tout de qu'il aura c'est le résultat de l'interprétation de ta page par Apache/Php, donc une page .html.

Merci Dan et Jean Luc,

On ne peut rien récupérer même avec un aspirateur de site ?

Modifié par dimi3
Posté

Non, le ph est interprété sur le serveur qui ne renvoi que du HTML.

donc même un aspirateur de site ne verra que du HTML.

++

Patrick

Posté

Non, le ph est interprété sur le serveur qui ne renvoi que du HTML.

donc même un aspirateur de site ne verra que du HTML.

++

Patrick

Je vois que j'ai beaucoup à apprendre. Je n'ai pas perdu ma journée. Merci pour votre temps ! :rolleyes:

Que signifie la deuxième ligne dans cet avertissement ? Comment l'éviter ?

Forbidden

You dont have permission to access /repertoire/ on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Posté

Non, le ph est interprété sur le serveur qui ne renvoi que du HTML.

donc même un aspirateur de site ne verra que du HTML.

++

Patrick

Bonjour, je profite du post de dimi3, pour vous demander :

Comment voir si une page est construite en php en affichant le code source de la page ?

Richard

Posté

Salut,

Il n'y a aucun moyen de le savoir à partir du code source.

Mais avec un analyseur d'entête http, on peut avoir la mention "X-Powered-By" et la version de php utilisée.

Voir par exemple : Analyseur d'entêtes http

Ah oui ! Excellent merci beaucoup pour cette réponse.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...