dimi3 Posté 27 Décembre 2010 Posté 27 Décembre 2010 (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 BasicAuthUserFile "/***chemin***/.htpasswd"Order Deny, AllowDeny from allAllow 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é 27 Décembre 2010 par dimi3
Ernestine Posté 27 Décembre 2010 Posté 27 Décembre 2010 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.
jcaron Posté 27 Décembre 2010 Posté 27 Décembre 2010 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.
dimi3 Posté 27 Décembre 2010 Auteur Posté 27 Décembre 2010 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...
Jeanluc Posté 27 Décembre 2010 Posté 27 Décembre 2010 Bonjour, Ton navigateur n'envoie pas "../repertoire/fichier.php" vers le serveur, mais "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
dimi3 Posté 27 Décembre 2010 Auteur Posté 27 Décembre 2010 ...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, AllowDeny from allAllow 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 : ForbiddenYou 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 ....
Dan Posté 27 Décembre 2010 Posté 27 Décembre 2010 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.
Jeanluc Posté 27 Décembre 2010 Posté 27 Décembre 2010 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 !
dimi3 Posté 27 Décembre 2010 Auteur Posté 27 Décembre 2010 (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é 27 Décembre 2010 par dimi3
Patrick Posté 27 Décembre 2010 Posté 27 Décembre 2010 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
dimi3 Posté 27 Décembre 2010 Auteur Posté 27 Décembre 2010 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 ! Que signifie la deuxième ligne dans cet avertissement ? Comment l'éviter ? ForbiddenYou 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.
rperruez Posté 28 Décembre 2010 Posté 28 Décembre 2010 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
Ernestine Posté 28 Décembre 2010 Posté 28 Décembre 2010 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
rperruez Posté 28 Décembre 2010 Posté 28 Décembre 2010 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant