Faile dans $_POST?

dufour137 Messages postés 45 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 31 octobre 2005 - 5 août 2005 à 16:12
dufour137 Messages postés 45 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 31 octobre 2005 - 8 août 2005 à 10:01
Bonjour tout le monde,



Les programmeurs php se souviennent : Avant, avec les anciennes versions de PHP, il suffisait de faire une page avec dedans <? echo $toto ?>.



Vous me suivez jusque-là. La variable $toto n'était définit à nulle
part, la page affichera qqch si on tappe dans notre navigateur préféré
(firefox) mapage.php?toto= 211223



Jusque là tout va bien. En pouvait faire la même chose en en créant un
formulaire sur une autre page avec comme action notre fameuse page avec
la méthode post, si on avait un champ texte, la page affichera sa
valeur.



Bref... Tout cela est bien beau. si maintenant on refait les mêmes expériances avec le php nouveau ça ne fonctionnera plus....



Pourquoi avoir changé qqch qui marchait au poil?



J'ai trouvé une solution pour y remédier dites moi ce que vous en pensez:



Je parle de ça

foreach($_POST as $var =>$value)

$$var=$value; //Fait $NoCode=sdksjskd;



Ce petit bout de code prends le tableau posté,



essayez print_r($_POST) et vous optiendrez un truc du style:



Array ( [formName] => AddComputer [backurl] => index.php [id]
> 19 [NoCode!] > dfsdf [Nom!] => dddd [IpAddress] =>
asdsda [MacAddress] => dasasddsadsasda [NoSerieManuf] => asddass
[FactureNo] => daasd [PurchaseDate] => 2005-05-10 [ModelId] =>
8 [CptTypeId] => 2 [InUseId] => 1 [UserId] => 2 [RoomId] =>
3 [ManufacturerId] => 0 [ProviderId] => 1 [Notes] => lasddas
[send] => Update )



Le foreach dont je parle prends tous les noms de variable entre
crochets, en crée avec ce nom et les défini. exemple $formName =
AddComputer. Et Tout ça est 100% automatique



Ma question est : Je recrée ce que php a supprimé dans ses nouvelles versions, suis-je en train de réactiver une faille?

10 réponses

mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
5 août 2005 à 16:26
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 août 2005 à 16:47
Salut,



pourquoi avoir changé ça ? tout simplement parce que c'était la porte ouverte aux failles de sécurité...



imaginons que tu envoies un formulaire via méthode post avec un champ
nommé "variable" qui est de type hidden et ne doit donc pas être
modifié par l'utilisateur. Celui-ci veut tester ton site et met donc
une url du style



site.com/page.php?variable=blablablebal



ici, en général ta variable post sera supprimée et lorsque tu
récupèreras le contenu de ta variable elle sera remplacée par
blablablebal



ce n'est qu'un exemple parmis tant d'autres...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
5 août 2005 à 16:49
youps, il marche pas ton exemple Anthomicro ! Un utilisateur peut poster ce qu'il veut :) la page web est juste là pour le style !
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 août 2005 à 16:51
ouais il peut poster ce qu'il veut, enfin c'était ce que j'ai tenté de faire comprendre

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0

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

Posez votre question
dufour137 Messages postés 45 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 31 octobre 2005
5 août 2005 à 19:00
Ouais, mais même avec un système comme le mien il peut poster ce qu'il
veut. en fait peu importe le système, on postera toujous ce qu'on
voudra avec un socket ouvert sur le site via c, c++, java, php,
python...
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
5 août 2005 à 19:08
via nc/telnet quoi
va voir sur le manuel, la question que tu soulèves y est très détaillée
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
5 août 2005 à 19:09
ou wget/curl encore plus simple
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 août 2005 à 19:11
Tu ne posteras pas ce que tu veux à partir du moment ou tu vérifies correctement
en PHP ce que l'utilisateur rentre comme données... Après c'est sûr que
si t'utilises javascript en plus des register_globals à on je donne pas
dix minutes pour que ton site soit en rade une fois que tu nous aura
passé l'url (lol)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
5 août 2005 à 19:16
le truc que tu fait ici est encore pire parce que tu vas écraser les variables de sessions.
Ben, tu postes ce que tu veux dans le sens ou tu peux faire une requete post avec les variables que tu veux. Après, libre au programmeur de faire un code pourri avec les variables récupérées :D
0
dufour137 Messages postés 45 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 31 octobre 2005
8 août 2005 à 10:01
Non, ça ne va pas écraser les variables $_SESSION ça n'écrase que les
variables $_POST, mais c'est vrai que d'un côté c'est du code pas super
propre, car l'utilisateur débutant ne comprendra pas pourquoi ça
fonctionne.
0
Rejoignez-nous