Free : Problème lien PHP et répertoire protégé avec .htacces

A
alex77ws
Guest
Bonjour à tous

Je suis en ce moment en train d'essayer de comprendre comment protéger l'accès par une page 403 lorsque l'on tente d'accéder à un répertoire que l'on souhaite protéger.

J'ai un répertoire "/scripts" où sont stockés tout mes scripts en php dans lequels vous vous en doutez figurent mon mot de passe et mon login dans mes fichiers .php

J'ai donc tenté de placer dans ce répertoire un fichier ".htaccess" dans lequel figure une seule ligne : "deny from all". En effet, ça marche mais par contre les liens en php, ça me retourne une erreur 403.

Je voudrais en fait que l'on ne puisse pas voir le contenu du dossier /scripts si l'on tape "http://monsite.free.fr/scripts/" mais que l'on puisse lancer des requête de type "http://monsite.free.fr/scripts/fiche.php?ID=2".

Car c'est là tout le problème, mon fichier "fiche.php" comme beaucoup d'autres contient mon mot de passe en clair.

Que faut-il faire de plus pour permettre l'utilisation de ce type de requête tout en protégeant le dossier ? Inutile de me renvoyer à la page Free de .htaccess j'ai rien compris.

Merci de bien vouloir me répondre parce que j'ai cherché à fond partout et j'ai pas trouvé.
 
Olivier Duffez (admin)
Membre du personnel
le plus simple est sans doute de créer un répertoire d'administration, que tu peux noter admin ou comme tu veux, et qui contient un fichier contenant toutes les variables de connexion avec mots de passe
ce répertoire admin sera protégé par un .htaccess
les autres scripts par exemple /scripts/fiche.php?ID=2 feront un include du fichier /admin/config.php

comme ça si tu as besoin de changer ton mot de passe, tu ne le changes que dans un seul fichier

PS: Bienvenue sur WRI !
 
A
alex77ws
Guest
Merci à vous Webrankinfo et galle

En effet c'est une solution à laquelle je n'aurais pas pensé!

J'ai crée un /admin/ dans lequel j'ai tout mes scripts en php et dans lequel j'ai placé un fichier .htaccess qui contient juste cette ligne : deny from all

Maintenant personne ne peut plus voir mes scripts car ils sont tous protégés! :D et de plus les variables de login et mots de passe ne figurent que dans un seul fichier.

Dans /scripts/ j'ai placé un fichier fonction.php qui fait un include sur le script .php auquel on souhaite accéder dans /admin/. Là aussi il faut faire en fait :

include $DOCUMENT_ROOT.'/admin/fichier.php' pour remonter jusqu'à la racine absolue

Je vais maintenant placer un fichier index.html ou index.php avec redirection vers la page d'acceuil ou d'erreur dans chaque dossier que je souhaite empêcher le listing !

C'est tout simplement génial ! J'ai galéré et mis des jours pour avoir la réponse du service technique de Free alors qu'en fait cette solution est absolumineusement géniale !

Merci encore les gars ! :wink:
 
WRInaute discret
Salut !
Pour éviter d'heberger sur ton serveur un fichier qui contient des mots de passe en clair, il suffit de les cripter... moi c'est ce que je ferais à ta place : je cripterais les mots de passe dans un fichier séparé du .htaccess
...

;)
 
WRInaute impliqué
ouais, utilise le md5 en php.
Mais logiquement, un fichier php, si tu empeche l'index de la directorie, personne ne peut voir ce qu'il y a dedans, car cela s'exécute coté serveur...
Peut être un peu trop paranoiaque non???
exemple:
-créez un fichier motdepass.php
-mettez-y des mot de passe et login,
-et entrez l'adresse direct du fichier .../motdepass.php

bien rien ne se passe, faites afficher source, et rien dedans... Normal, c'est le but du PHP...
 
WRInaute passionné
De toute façon, les mots de passe dans un fichier php ne sont pas disponibles "en clair" à moins que tu n'aies écrit ton script de fort étrange façon avec un echo $motdepassse...
 
WRInaute impliqué
Je ne connais encore personne qui ait fait ça :D Et personnellement, j'en connais des couillons, mais pas de ce niveau... :lol:
mmmmmmmddddddrrrrrrrr
 
Discussions similaires
Haut