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

Signaler
Messages postés
150
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
20 juillet 2009
-
 florian -
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 ?

9 réponses

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.
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
150
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
20 juillet 2009
27
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.
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
Messages postés
150
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
20 juillet 2009
27
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.
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 ?
Messages postés
150
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
20 juillet 2009
27
<?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.
Ç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.
Messages postés
150
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
20 juillet 2009
27
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.
ç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 https://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.
"
super explication
Messages postés
150
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
20 juillet 2009
27
Je te remercie le Père pour ton attention et ton aide ! A +
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
> Bamboo
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 ;)
> Bamboo
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....
Messages postés
166
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
9 septembre 2017
45
@christoff

en mettant un deny from all sur un dossier on bloque l'accès sur le dossier c'est apache le maitre de tout ca, on lui dit de pas aller sur un dossier il y va pas.

sinon j'ai lu des betises... la commande order deny , allow il faut etre dans un deny from et pas dans un allow pour etre interdite. Moi je fais via des listes blanches... j'interdis tout sauf ce que j'autorise... donc order deny allow c'est liste blanche.. et order allow deny c'est liste noire.