The KinG
|
 |
« le: 17 Janvier 2007 à 22:05:57 » |
|
Bonjour tout le monde. Pour tester la faille include je me suis fais un petit script faillible. Le voici: <?php
$page = $_GET['page']; include("$page.php");
?> Sachant que: je veux inclure ma page.php dans ma pag3.php . Le code ne fonctionne pas correctement et je ne comprend pas trop pourquoi. Et une autre question, une fois dans un challenge, j'ai testé la faille et le site a remarqué une tentative de modification de l'url. Comment le site fait-il pour savoir cela ? Il utilise des conditions ? Je sais vraiment pas. Merci de votre aide.
|
|
|
Journalisée
|
G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
|
|
|
|
Nebelmann
|
 |
« #1 le: 18 Janvier 2007 à 08:19:14 » |
|
Fais bien attention à entrer une URL du type et non pag3.php?page=kikoulol.php sinon tu incluerais kikoulol.php.php ce qui me semble pas bien  La raison pour laquelle le site a remarqué ta modification est simple : toutes les pages valides ont été mises dans un tableau, lorsque l'on veut faire l'include on regarde si la page est dans le tableau, si elle n'y est pas c'est que tu as essayé de modifier le comportement normal 
|
|
|
Journalisée
|
-- Nebelmann -- Registered linux user #429186«Si les lecteurs étaient des compilateurs, les posteurs feraient peut-être davantage attention à ce qu'ils écrivent...»
|
|
|
|
offw0rld
|
 |
« #2 le: 18 Janvier 2007 à 15:52:49 » |
|
Ou peut etre que les pages sont des fonctions, ça évite les includes. <?php
function indexcontents() { echo "<html>mon index ..."; }
if (isset($_GET['page'])) { if($_GET['page']=="index") indexcontents(); else echo "Arrete de modifier mon url"; }
else indexcontents();
?>
|
|
|
Journalisée
|
|
|
|
|
the lsd
|
 |
« #3 le: 18 Janvier 2007 à 16:25:42 » |
|
ouais mais ca implique d'avoir toutes les pages dans le même fichier... Pour un petit site ca va, mais pour un site genre NC, c'est pas très pratique...
Enjoy
The lsd
|
|
|
Journalisée
|
Newbie Contest Staff : The lsd - Th3_l5D (IRC) Statut : Administrateur Citation : Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
|
|
|
|
offw0rld
|
 |
« #4 le: 18 Janvier 2007 à 16:33:04 » |
|
pas forcément, mais je trouve ça plus pratique de ne pas avoir 50 fichiers un peu partout sur le serveur, ensuite tu peux séparer tes fichiers.
contentsforum.php contentsmembre.php contentspublic.php etc
Ensuite tous ça ce gere à la création.
|
|
|
Journalisée
|
|
|
|
|
The KinG
|
 |
« #5 le: 18 Janvier 2007 à 18:55:35 » |
|
Merci pour vos indications. Vous ne m'avez pas fais de remarque sur mon code PHP. J'en conclue qu'il n'y a pas d'érreure. Mais il ne fonctionne toujours pas malgré de nombreuses tentatives. Par **orthographe !** j'ai trouvé une autre façon d'include une page dans une autre. Voici le code: <?php
include("page.php");
?> Ce code fonctionne très bien par contre ! Mais est-il toujours faillible ? On ne voit plus le lien du type page=page. Merci de votre aide.
|
|
|
Journalisée
|
G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
|
|
|
|
the lsd
|
 |
« #6 le: 18 Janvier 2007 à 18:59:22 » |
|
ton deuxieme code n'est pas faillible, vu qu'il n'y a aucune variable. Ton include, incluera obligatoirement le fichier nommé page.php
Offworld, dans ce cas tu a plusieurs fichiers, et donc tu fait un include non ? Donc ca revient au meme (ou alors j'ai pas calé ce que tu as dit...)
Enjoy
The lsd
|
|
|
Journalisée
|
Newbie Contest Staff : The lsd - Th3_l5D (IRC) Statut : Administrateur Citation : Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
|
|
|
|
The KinG
|
 |
« #7 le: 18 Janvier 2007 à 19:15:54 » |
|
Et donc mon 1er est faillible. C'est alors lui qui m'interrese le plus.  Sinon je suis toujours bloqué car il ne fonctionne pas. Bref je vais essayer de voire ce qui ne va pas. Je vous tiens au courant...
|
|
|
Journalisée
|
G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
|
|
|
|
offw0rld
|
 |
« #8 le: 18 Janvier 2007 à 19:47:38 » |
|
Pour lsd : Non, je parler juste de diviser tes functions dans plusieurs fichiers, mais aucune faille requiere_once("les_differente_page"); et ensuite on revient sur le code qui execute les fontions en fonction du $_GET.
Pour the king : Comme l'a dit nebelmann page=kikoulol, inclue la page kikoulol.php, aucune raison qu'il ne marche pas, en revanche il est completement faillible.
|
|
|
Journalisée
|
|
|
|
|
The KinG
|
 |
« #9 le: 18 Janvier 2007 à 20:20:50 » |
|
Pour the king : Comme l'a dit nebelmann page=kikoulol, inclue la page kikoulol.php, aucune raison qu'il ne marche pas, en revanche il est completement faillible. Dis-moi ce qui ne va pas dans mon code je ne vois vraiment pas.  <?php
$page = $_GET['include.php']; include("$page");
echo "Ici est inclue la page include.php";
?> Merci
|
|
|
Journalisée
|
G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
|
|
|
|
the lsd
|
 |
« #10 le: 19 Janvier 2007 à 00:36:54 » |
|
ton code n'est pas le meme que le premier que tu as mis.
Dans le premier, tu incluais la variable de la page + le .php donc quand tu passe la variable kikoulol Ca va inclure kikoulol.php (la vraiable + le .php)
Dans le code que tu viens de poster, tu as une variable qui passe en GET (par url donc), nommée include.php. Ensuite tu inclue ta variable donc, le code est faillible egalement, car si on ecrit par exemple dans l'url kikoulol_leretour.php, cela incluera kikoulol_leretour.php (la difference entre ce code et le premier est le ".php" dans l'include) En esperant t'avoir aider un peu...
Enjoy
The lsd
|
|
|
Journalisée
|
Newbie Contest Staff : The lsd - Th3_l5D (IRC) Statut : Administrateur Citation : Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
|
|
|
|
Nms
|
 |
« #11 le: 19 Janvier 2007 à 10:48:22 » |
|
The King, essaie le code suivant : <?php
$page = $_GET['page']; include($page);
?> Disons que tu as nommé ton script "test.php" . Maintenant tu appelles ton script de la manière suivante : test.php?page=http://www.google.fr et dis moi ce qui se passe. Et si ça ne marche toujours pas, précise où tu fais tes tests, si c'est en local ou sur un hébergeur.
|
|
|
Journalisée
|
Ex Newbie Contest Staff : Nms Status : Concepteur d'épreuves Citation : Je ne sais qu'une chose : que je ne sais rien. (Socrate)
|
|
|
|
The KinG
|
 |
« #12 le: 19 Janvier 2007 à 21:04:44 » |
|
Le code ne marche pas je comprend pas pourquoi  Je vous met les erreures à cas où cela vous eclaire... Notice: Undefined index: pag3 in c:\documents and settings\baptiste\mes documents\include tests\pag3.php on line 6 Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\documents and settings\baptiste\mes documents\include tests\pag3.php on line 7 Je fais mes test en locale avec easyPHP. Je veux inclure ma page-->pag3.php dans la page include.php. Donc je tape ce code: <?php
$page = $_GET['pag3']; include($page);
?> Edit de the lsd : j'ai enlevé le nom, un peu d'anonymat ne fait pas de mal 
|
|
|
Journalisée
|
G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
|
|
|
|
Nms
|
 |
« #13 le: 19 Janvier 2007 à 21:13:33 » |
|
J'ai comme le très légère impression que tu te mélanges gravement les pinceaux ! Si tu n'as pas d'index pag3 de défini (selon l'erreur) ca veut dire que tu appelles ton script directement sans paramètre passés dans l'url ! Or un include c justement le fait d'inclure une page que l'on a passée via l'url ! Donc ici, quelle est l'url exacte que tu as tapée dans ton browser ?
|
|
|
Journalisée
|
Ex Newbie Contest Staff : Nms Status : Concepteur d'épreuves Citation : Je ne sais qu'une chose : que je ne sais rien. (Socrate)
|
|
|
|
The KinG
|
 |
« #14 le: 19 Janvier 2007 à 22:07:21 » |
|
J'ai comme le très légère impression que tu te mélanges gravement les pinceaux ! Si tu n'as pas d'index pag3 de défini (selon l'erreur) ca veut dire que tu appelles ton script directement sans paramètre passés dans l'url ! Or un include c justement le fait d'inclure une page que l'on a passée via l'url ! Donc ici, quelle est l'url exacte que tu as tapée dans ton browser ? Je n'ai pas tapé d'url dans la barre. Je ne le fais pas car mon code ne fonctionne pas dès le début. Voilà j'éspère que vous comprenez mon problème. En tous cas merci pour l'aide ça fait toujours plaisir ! 
|
|
|
Journalisée
|
G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
|
|
|
|
|