Autoriser uniquement PHP à accéder aux sous-répertoires.

  • Auteur de la discussion Auteur de la discussion Inazo
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

J'aurais voulu pour des raisons simple interdire l'accès à tous fichier que se soit des .php, .html ou .jpg et autres, que ce soit par mon nom de domaine ou par un autre nom de domaine.

Cependant il est logique de dire que si j'interdit tous ces fichiers on ne pourras jamais accéder au site. évidement ceci n'est pas le but.

Le but est d'interdire tous accès à ces fichier qui se trouve dans des sous-répertoire de la racine du site.

Donc pour faire simple on autorise :

http://mondomaine.org/index.php

Mais on refuse :

http://mondomaine.org/compte/profile.php

Donc je voudrais savoir comment on peut procéder pour interdire tout accès aux fichier se trouvant dans ce cas de figure :

http://mondomaine.org/*/*.*

J'ai pas mal regarder sur Internet et sur ce forum mais je n'ai pas trouver de solution et j'avoue que mes tentative d'interdiction d'accès pour un répertoire son infructueuse.

Mon hébergeur est 1and1.

Si des informations ou des explications supplémentaires sont requise je les fournirais avec plaisir.

Merci à toutes les personnes qui liront ce message et/ou qui répondront.

Cordialement Inazo.
 
Nouveau WRInaute
Bonjour,

Merci pour ta réponse, j'ai essayer avec ce que tu as mis et en rajoutant php dans la liste des extensions refuser cependant c'est un peu trop efficace. L'index du site qui pointe vers un .php est rejeter directement.

Mais en utilisant un Url Rewriting pour ce retrouver sur la page en .php on est rejeter tout de même, donc je ne pense pas que cette méthode soit la bonne a part pour protéger certain dossier très sensible.


Cordialement Inazo.
 
Nouveau WRInaute
Merci pour cette réponse,

mais j'ai un soucis pour le chemin en questio, sur un hébergement Linux j'aurais sans soucis récupéré le realpath, mais vu que c'est un hébergement Windows je doit le marquer en syntaxe windows .

Utilisation de wamp sous un Windows Xp.

J'ai donc essayer ceci :
Code:
<Directory "C:\wamp\www\NewPai\">
Order deny,allow
Allow from localhost
Deny from all
</Directory>

et ceci :
Code:
<Directory "wamp/www/NewPai/">
Order deny,allow
Allow from localhost
Deny from all
</Directory>

Pour obtenir au final une erreur 500.

Et de plus cette solution ne vas interdire que les appel externe mais je pourrais toujours accéder via l'adresse localhost à tous fichier. Le but serait que plutôt d'autoriser tel ou tel fichier d'autoriser uniquement la racine et interdire tout les autres avec une regex c'est peut être possible non ?

EDIT :

Voici une solution qui fonctionne qui répond très bien à mes attentes :

Code:
#Interdit tout visibilité ou execution de .php sauf par php lui même
<Files *.php>
Order deny,allow
Deny from all
</Files>

#Autorise le fichier index.php à être appeler directement en dehors de tous scripts
<Files index.php >
Order deny,allow
Allow from localhost
Deny from all
</Files>

Cordialement Inazo.
 
WRInaute accro
Pour les boulets en mon genre, aurais-tu 5 minutes pour plus d'explication ?

Code:
#Interdit tout visibilité ou execution de .php sauf par php lui même
<Files *.php> 
Order deny,allow 
Deny from all 
</Files>

si je met dans la barre d'adresse : -www.monsite.com/contact.php et que contact.php ne peut etre executer,
a quoi cela sert-il ? Comment fais-tu pour l'executer ?

Code:
 #Autorise le fichier index.php à être appeler directement en dehors de tous scripts 
<Files index.php > 
Order deny,allow 
Allow from localhost 
Deny from all 
</Files>

index.php est l'exception ?



Derniere question:

Je peux apeler contact.php sans son extention :
-www.monsite.com/contact

ton systeme va t-il marcher ?
 
Nouveau WRInaute
Bonjour,

En effet Index et l'une des exceptions mais il peut en avoir plusieurs, donc tu peux autoriser la page contact.php à être appelée.

Si tu essaye d'appeler ta page sans son extension tu aura un message d'erreur de type fichier non trouvé.

A quoi cela sert-il ?

A être sur que tel ou tel page est bien appelé dans les conditions voulus dans mon exemple chaque page est obligatoirement incluse dans l'index, pour être exploité. Donc il est impensable que l'on puisse appeler une autre page directement.

Si je n'ai pas été assez clair n'hésitez pas à poser des questions.

Cordialement Inazo.
 
WRInaute accro
Trés clair !!

C'est tres interressant c'est pour ca que j'ai pris 2 minutes pour tester en ligne. Et je me prend bien une erreur 403 mais sur index.php aussi !! Je n'arrive pas faire passer index.php comme exception.

Ca depend de la config serveur ?
 
Nouveau WRInaute
Ah intéressant comme erreur mais je pense que cela vient d'ici :

Code:
Allow from localhost

En fait il faudrait que à la place de localhost tu mettes ton nom de domaine.

Je pense que là ça sera corriger.
 
Nouveau WRInaute
De rien.

Voila donc si quelqu'un trouve un autre bug ou une solution pour améliorer le script n'hésité pas.

Cordialement Inazo.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut