Autoriser l'accès que pour include.

sigma2008

WRInaute impliqué
Bonjour,
J'ai un dossier include avec des fichiers que j'ouvre pas directement mais je les inclues dans d'autres pages.

quand j'ouvre avec le lien une page dans include par exemple ..../include/header.php, cette page s'ouvre normament !! Un moyen pour interdire l'ouverture directe des fichiers de ce dossier ?

Merci
 

sigma2008

WRInaute impliqué
J'ai essayé spout, sauf que ma page est en ajax (je fais appel à un fichier dans ce dossier en ajax)

Code:
........
function envoiformulaire() { 
var xhr3 = new_xhr();//On crée un nouvel objet XMLHttpRequest 
xhr3.open("POST", "script/sendmsg.php", true);//Appel du fichier externe 
.........

Donc si je met deny From All j'ai une erreur 403
 

sigma2008

WRInaute impliqué
tout marche très bien c'est juste le javascript quand il fait appel au fichier dans include il ne peut pas si je met deny from all
 

zeb

WRInaute accro
loubet a dit:
cohérence de ton arborescence
Cela veux dire que tout fichier exposé a la toile (script ajax y compris donc) ne doivent pas être rangés au même endroit que tes bibliothèques php (on "include" pas un fichier de réponse ajax de toute façon).
 

sigma2008

WRInaute impliqué
donc je met un dossier qui contient les fichiers appelés par l'ajax dans un dossier à part et dans chaque page j'interdit l'accès via le php ?
 

zeb

WRInaute accro
sigma2008 a dit:
donc je met un dossier qui contient les fichiers appelés par l'ajax dans un dossier à part et
et ce qui n'est pas a exposer au web via http tu le protège en effet.

Fait attention avec tes fichiers ajax aussi, on pense pas toujours a leur utilisation détournée possible si on attaque le fichier en direct ;-)
 

sigma2008

WRInaute impliqué
Merci Zeb et comment pensez vous que je peux les protéger en php ? genre si ya pas de get ou post on affiche une erreur ?
 

zeb

WRInaute accro
sigma2008 a dit:
genre si ya pas de get ou post on affiche une erreur ?
Bah ça ne te donnera rien dans la mesure ou ce qui craint avec Ajax c'est la corruption de données donc si il n'y en à pas de transmise c'est "moindre mal".

Il faut vérifier la provenance de la requête, borner les données et vérifier leur conformité, vérifier éventuellement la légitimité de la requête (elle ne peut pas venir de n'importe où et de n'importe qui en fonction d'où tu en as besoin) ça ne peut pas être appelé a répétition (brute force, dump, ...) etc ... Tu dois étudier le comportement normal de ces scripts pour en définir les limites donc.
 

Discussions similaires

Haut