MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 2009
-
22 juin 2005 à 01:15
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
22 juin 2005 à 13:18
Bonjour à tous,
voilà la question va peut etre vous paraitre stupide, mais lorsqu'on
fait un include en php, est ce que le code php de la page incluse est
interprété.
C'est à dire est ce qu'un hacker peut écrire du code php dans une page (à des fins ) et lorsqu'il l'upload sur mon site et que j'affiche sa page avec include, son code sera t'il executé ?? (je pense que oui... )
Si oui comment l'empecher ??
Je pensais à un str_replace() qui remplace les balises php (et asp et
javascript au passage) par du vide, mais le problème c'est que la page
que j'inclus est un tutoriel de programmation, donc si c'est un
tutoriel sur du php il faut bien que l'auteur du tutoriel puisse écrire
les balises <?php et ?> sans que cela soit interprété
voyez-vous...
Et cela me semble possible car il est bien possible d'afficher les
caractères <? et ?> dans cette page, ceux-ci ne sont pas
interprétés par le serveur (bien que ça soit de l'asp ici ...)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 22 juin 2005 à 12:48
tout à fait (pour peu que le serveur n'interprète pas, ce qui est généralement le cas, les extensions .htm)
mais bon tu prends quand même des risques, si tu fais un include d'un
fichier (qu'il porte n'importe quelle extension) et qu'il contient du
code php, le php sera exécuté. Ainsi si ta page html contient ça :
cs_Isengard
Messages postés83Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention10 février 2006 22 juin 2005 à 08:56
Si tu souhaites empecher un hacker d'inclure un fichier externe il faut
que tu prévoye les quelques fichiers qui seront les seuls à pouvoir
être inclus. Par exemple, tu passes une variable en paramètre avec la
méthode get : url= mapage.php?action=pagetutotiel
Et sur mapage.php à l'endroit ou tu include, tu fais un switch pour
tester la valeur de action sur toutes les valeurs possibles :
switch($action) {
case "index" :
include("index.php");
break;
case "pagetutoriel" :
include("pagetutoriel.php");
break;
case ...
...
...
default :
include("erreur.php");
break;
}
L'inclusion passe par le switch et la page incluse dépend de la valeur
de $action. Si action a une valeur qui n'est pas prévue par ton code,
ca va en défaut et ca affiche une erreur. Et comme ça c'est sécurisé !
(on peut aussi utiliser la methode pour prevoir des traitements masi ca
devient lourd apres :) )
"Celui qui brise une chose pour découvrir ce que c'est a quitté le chemin de la sagesse"
Vous n’avez pas trouvé la réponse que vous recherchez ?
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 22 juin 2005 à 12:07
Mince je suis désolé, j'avais complétement oublié que j'avais changé la méthode pour afficher la page...
En fait j'utilise pas un include, j'utilise un iframe
donc je voulais savoir si le php sera executé dans la page contenue dans mon frame (elle se trouve sur le meme serveur) ?
Et pour "parser" un fichier, on fait comment ? C'est quoi parser un fichier ?
Merci en tout cas pour vos réponses si rapides
Malalam >> J'ai regardé la doc de cette fonction ça à l'air de me
convenir, seulement comment faire la meme chose pour une page qui est
dans un iframe ? Parce que cette page peut ouvrir d'autres liens (enfin
ça fait comme un petit navigateur interne à la page...) donc il faudra
refaire cette méthode à chaque changement de page... Et ça risque de me
colorier des mots, des phrases aussi non ?
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 22 juin 2005 à 12:56
Oui oui je vois, mais la il s'agit d'un iframe donc à priori c'est bon
si le serveur n'executera pas le php qui pourrait etre contenu dans une
page .htm...