Empecher l'execution de php avec un include

Résolu
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 22 juin 2005 à 01:15
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 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 ...)



Donc que faire ??



Je vous remercie grandement de votre aide..



(et au fait ce problème est le meme pour les commentaires d'un forum
par exemple, car je voudrais la meme protection dans mon forum)
Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html

11 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 juin 2005 à 12:17
Salut,



oui, le PHP sera exécuté.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
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 :



<?php

echo 'je t\'ai cassé';

?>



ça sera affiché ^^

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 juin 2005 à 13:02
ok si tu passes par une iframe (beurk) ça sera une page html normale et donc non exécutée

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
3
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 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"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
22 juin 2005 à 09:07
Salut,



n'utilise pas un include et parse ton fichier afin que t'es <?php
deviennent des &lt;php et ?> des ?&gt;, comme ca ton
probleme est résolu.



Ou alors tu ouvres le fichier au chargement est tu parses ton fichier afin de faire le remplacement des balises puis include

"They are 10 sorts of persons whose understand binary and whose not"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 juin 2005 à 09:17
Hello,



ouais enfin, y a plus simple quand meme ;-)

highlight_file ()



http://de2.php.net/manual/en/function.highlight-file.php
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
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 ?

Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
22 juin 2005 à 12:28
Merci, ça c'est de la réponse.

Alors j'ai réfléchi un petit peu et jme suis dis que si j'autorise juste les fichiers d'extension .htm et .html à s'afficher c'est bon alors ?

Aucun php executé parce que ça n'est pas dans la page .php que ce code se trouvera, mais dans une page .htm

Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
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...



Merci beaucoup pour vos infos

Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
22 juin 2005 à 13:09
Ok merci

Non mais le iframe ça a une explication bien précise c'est pas juste du bricolage lol c'est pas beurk dans ce cas

Au contraire ça rend super bien...

Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 juin 2005 à 13:18
si tu le dis ^^



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous