Bonjours à tous,
j'ai trouvé utile de poster cette discution car bon nombre d'entre nous ont fait, fait ou feront cette erreur.
Dans un de mes post http://www.developpez.net/forums/sho...d.php?t=510537 j'ai conseillé à un membre de ce forum d'inclure des pages dans sont index.php par la mêthode GETS.
ex :
Avec URL .
Donc mon index.php j'avais :Un beau jour, j'avais un entretien d'embauche pour webmaster/webdesigner. Content d'un de mes sites, j'ai voulu le montrer. Et là surprise, ils ont vu mon site mais version hacker. L'hebergeur de ce site m'a averti le même jour par ce message
Code : Sélectionner tout - Visualiser dans une fenêtre à part include($page.".php");. Vous l'avez bien compris, 40001 spam envoyé depuis mon site.mails sent in week 12 : 40001de ces c***** qui em***** le monde.
Bref, le problème c’est que php peut inclure n’importe quoi, et même des fichiers distants. Donc si quelqu’un appelle l’URL :Le “?” final sert à faire tomber le “.php” dans notre include.
Le contenu du fichier “scriptMechant.txt” sera interprété et exécuté localement (sur votre serveur). Donc le pirate peut tout faire, comme lister les fichiers, les modifier ou effacer.
Pour eviter ce genre d'attaque, il faut filtrer ce qui passe dans la variable "$page" dans mon exemple. Il faut faire une liste de fichier à autorisé l'inclure.
Ma methode de 1er secour était de faire :
cet article http://maconnect.ch/bg/?p=8 propose d'autres solutions et donne des détails sur ce type de faille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $pagevrai=""; //A rajouter à chaque nouveau fichier à inclure if($page=="monfichier1") $pagevrai=$page; if($page=="monfichier2") $pagevrai=$page; ... if($page=="") $pagevrai="intro"; //Si "$page" non vide ou mauvaise "$page" alors afficher erreur if($page!=$pagevrai) $pagevrai="erreur"; include ($pagevrai".".php");
Partager