Faille de $_SERVER['PHP_SELF']

le 19/05/2005 à 13:37
Faille de $_SERVER['PHP_SELF']
Source Nexen :

Sean Coates relate sa découverte des XSS là où il l'attendait pas : dans $_SERVER["PHP_SELF"].

Les XSS consistent à injecter du code JavaScript dans une page, en faisant placer des données dans le code HTML par le script PHP. Le grand classique est
echo $_GET["x"];. qui injecte toute la variable x passée en méthode GET dans le code HTML. Il ne reste plus qu'à donner à x un peu de code Javascript, et le tour est joué.

Donc tout comme _GET, _POST et _COOKIE, il est recommandé de traiter _SERVER avant de les utiliser, par exemple avec un htmlentities. Sean vous explique pourquoi.

En gros, PHP_SELF renvoie l'url courante, donc il devient alors possible de modifier l'url pour y introduire du code javascript facilement.

L'article en Anglais

Commentaires

Ecrire
mobman02
le 19/05/2005 à 14:50
mobman02
!!! Depuis quand est-il recommander de ne pas utilisé _GET, _POST et _COOKIE ??? Dans ce cas la, php ne sert a rien !

Il faut faire gaffe c'est tout,
faire des bon test sur les variables passé a php...

Et sinon, je comprend mal comment le serveur peu executé du javascript :S
http://damienalexandre.fr/
zebden
le 19/05/2005 à 15:05
zebden
Faut pas comprendre tout de travers. Il est expliqué qu'il faut ne faut pas utiliser ses variables sans y avoir fait des tests au préalable.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Liam
le 19/05/2005 à 20:47
Liam
Bonjour,
Désolé mais j'ai été surpris moi aussi tout comme mobman2 de cette annonce.
Faudrait peut etre corriger dans les termes que tu exprimes zebden, afin d'etre plus clair, ca evitera tout commentaires erronnés. ;)
http://www.randonnez.fr
Bzh
le 19/05/2005 à 22:15
Bzh
Oui, mais l' article n' est pas faux et Zebden n' à pas tord !!!

Il est sur que tout le monde à bien comprit qu' il était important de vérifier les variables surtout _GET.

Mais, maintenant, je suis pas sur que tous ceux qui utilisent la constante PHP_SELF font bien les vérifications. Même, sicèrement, très peux le font.

Proteger une variable prenant sa valeur chez le client est tout à fait naturel. Mais protêger une constante venant du serveur l' est beaucoup moin.

Il est important de préciser cela et Zebden l' a fait.

Merci... Bye...
Liam
le 19/05/2005 à 22:37
Liam
re,
Je ne dis pas que l'article soit faux ou que zebdenai tord, je dis simplement que l'intro de l'article peut etre mal interprété pas plus je n'aserais pas critiquer qui que soit et surtout pas zebden ;) ++
http://www.randonnez.fr
zebden
le 20/05/2005 à 09:28
zebden
La news est pas de moi mais un copié / collé de Nexen. ce qui est de moi c'est "En gros, PHP_SELF renvoie l'url courante, donc il devient alors possible de modifier l'url pour y introduire du code javascript facilement." . Je vais modifier :p
zebdinou pour les intimes / Blog : http://www.zebden.fr
zebden
le 20/05/2005 à 09:30
zebden
mieux ?
zebdinou pour les intimes / Blog : http://www.zebden.fr
Liam
le 20/05/2005 à 19:11
Liam
bjour !!

Quel homme !! la reponse à tous ce bonhomme ;)

++
http://www.randonnez.fr
Rex
le 27/06/2005 à 17:11
Rex
Sauf que dans le cas suivant, le PHP_SELF n'entraîne pas de vulnérabilité de type XSS.

Comment voulez-vous avec cette méthode "attaquer" un autre utilisateur ?

L'auteur de ce blog montre l'exécution d'un code Javascript par l'utiliateur lui même, mais est dans l'incapacité total de montrer un exemple de XSS. Normal, ce n'est pas possible par cette voie ...
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Ecrire
LoadingChargement en cours