Posez votre question Signaler

[htaccess] Deny from all sauf pour le serveur [Résolu]

chupa23 151Messages postés 13 décembre 2008Date d'inscription - Dernière réponse le 23 avril 2010 à 09:26
Bonjour,
Je suis en train de faire quelques essais et j'ai un petit souci actuellement au niveau de mon htaccess.
En faites ce que je souhaite faire c'est autorisé le serveur à aller chercher les pages dans le dossier nommé include mais bloqué l'accès aux personnes qui voudrait aller se balader dedans.
Actuellement j'ai testé ceci en LOCAL (contenu du fichier .htaccess situé dans le dossier include):
deny from all
allow from 127.0.0.1

Donc je peux inclure une page mais je peux y accéder également, y a t il une solution pour inclure une page en php tout en bloquant son accès ?
Lire la suite 

[htaccess] Deny from all sauf pour le serveur »

13 réponses
Réponse
+0
moins plus
Bonjour

Les "deny" et "allow" du serveur apache concernent les accès par HTTP. Or, un include dans un script accède directement par le système de fichiers, il n'est pas du tout concerné par ces restrictions.
Tu peux mettre tous les "deny" que tu veux, ça ne t'empêchera pas de faire un include. Personnellement, je mets toutes mes fichiers include dans un repertoire avec "deny from all" et ça marche très bien.
Ajouter un commentaire
Réponse
+0
moins plus
Ba je ne sais ce que tu utilise comme logiciel en local mais si je met un deny from all , je ne peux plus faire d'include... J'ai testé avant de poster quand même.
Ajouter un commentaire
Réponse
+0
moins plus
En local, j'utilise Apache ;)
Si tu fais des include ("http://..") d'accord, ils sont aussi bloquées (car en http) , sinon, il n'y a aucune raison. C'est autre chose qui te bloque
Ajouter un commentaire
Réponse
+0
moins plus
J'utilise de lien relatif pour inclure mes parties :
<?php include('./Include/exemple.php');?>

Je dois les modifer en absolu ou autrement encore ?

Et c 'est forcement cela qui bloque , j'ai un souci que lorsque je met ces lignes dans le fichier htaccess.
Ajouter un commentaire
Réponse
+0
moins plus
Relatif ou absolu, peu importe.
Tu m'inquiètes ... tu mets cette ligne dans le fichier .htaccess ???
Ou tu veux dire que tu mets ton fichier exemple.php dans le dossier Include et que dans le dossier Include tu mets un fichier .htaccess ?
Ajouter un commentaire
Réponse
+0
moins plus
<?php include('./Include/exemple.php');?> est bien entendu dans un fichier php... dans mon htacces j'ai ceci : deny from all
allow from 127.0.0.1

C'est tout.
Ajouter un commentaire
Réponse
+0
moins plus
Ça n'est pas htacces mais .htaccess
Ce fichier .htaccess, c'est bien dans le dossier Include que tu le mets, pas dans celui de ton script ?
Et enlève le allow from 127.0.0.1, il est inutile.
Ajouter un commentaire
Réponse
+0
moins plus
Oui tout à a fait , j'ai un dossier Site dans lequel j'ai le page index.php (<?php include('./Include/exemple.php');?> est sur cette page) puis j'ai un dossier include dans le dossier site ou il y a le .htaccess et le fichier exemple.php.

Ca donne ceci :

--Site
Index.php
----Include
.htaccess
exemple.php

Mais j'ai trouvé le truc qui bloquait...enfin je pense : Order Deny, Allow
J'ai retiré cette ligne et ca marche.
mimi_mada - 23 avril 2010 à 09:26
ça doit être parce que tu as utilisé l'ordre Deny, Allow au lieu de Allow,Deny; dans ce lien, il y a une explication http://www.securiteinfo.com/conseils/htaccess.shtml.
"Dans l'ordre Deny,Allow, les directives Deny sont évaluées avant celles de la clause Allow. Le défaut est d'autoriser l'accès. Tout client qui ne correspond pas à la directive de déni ou qui satisfait au test d'autorisation spécifique Allow se verra autorisé l'accès au serveur web.
Dans l'ordre Allow,Deny, les directives Allow sont évaluées avant celles de la clause Deny. Le défaut est d'interdire l'accès. Tout client qui ne correspond pas à la directive d'autorisation ou qui satisfait au test de déni se verra refusé l'accès au serveur web.
"
Ajouter un commentaire
Réponse
+0
moins plus
Je te remercie le Père pour ton attention et ton aide ! A +
Bamboo - 24 août 2009 à 19:06
Salut chupa !!

Ton problème m'intéresse car je me pose actuellement la même question.

J'avais déjà essayé par le passé mais sans succès.

Concrètement ce que je souhaite (en essayant d'être le plus clair possible :p) :

> mon site se présente ainsi : une page index.php et à côté un dossier files/
> tout part du dossier files (les css, javascript, php, images ... etc)
> aussi mon index.php va régulièrement piocher des fichiers à droite à gauche dans le dossier files et ses sous-dossiers.
> par contre, imaginons maintenant qu'un individu connaisse le nom d'un de ces fichiers, par exemple le fichier monFichier.txt dans le dossier files/textes/monFichier.txt.
> COMMENT bloquer l'affichage de ce fichier lorsque l'individu va taper http:// www.monsite.com / files / textes / monFichier.txt tout en laissant l'index.php manipuler ce fichier...

Jusqu'à présent, je n'arrive pas à ce résultat.
Mon dernier test > Deny from All dans le .htaccess
Du coup je bloque bien l'affichage du fichier lorsqu'on tape son url complète, mais mon index.php devient lui aussi incapable d'utiliser ce fichier... mega snif

Il me semble que ton problème était similaire, aussi pourrai-tu m'indiquer la solution que tu as éventuellement trouvé ?

Acutellement ma solution à moi consiste simplement à placer des index.html vide dans chaque répertoire pour éviter le listing par le navigateur. C'est un début, mais ça ne résout pas le problème du bonhomme qui trouve le nom d'un des fichiers.

En te remerciant
christ0ff - 3 févr. 2010 à 11:43
Salut Bamboo,

j'ai peut-être une solution pour ne pas accéder directement aux fichiers *.php

dans ton index.php, tu définis une constante :
define('MACONSTANTE', true);

puis dans tous les fichiers *.php du répertoire files :
if (!defined('MACONSTANTE')) exit;

Ainsi, un internaute accédant directement à un fichier php du répertoire files (ou d'un sous-répertoire) se verra afficher une page blanche.

En espérant que ça puisse t'aider un peu... même si je suis hors sujet ;)
ricoBamboo - 11 mars 2010 à 14:53
Salut Bamboo,
Je pense que j'avais à peu près lemême souci que toi à savoir interdire le listage du contenu de mon répertoire sans pour autant restreindre l'acces à la ressource (script, image, mp3...).

J'ai trouvé ça comme solution :
Options All -Indexes
à mettre dans le .htaccess (celui de la racine de ton site par ex)

j'ai trouvé l'info sur ce site : http://www.blackotine.fr/apache/exemples-htaccess

Voilà, j'ai bien galéré pour trouver ça alors si ça peut en aider d'autres....
Ajouter un commentaire
Ce document intitulé « [htaccess] Deny from all sauf pour le serveur » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?