Faille de $_SERVER['PHP_SELF'] - Commentaires

Jeudi 19 mai 2005
Faille de $_SERVER['PHP_SELF']
News php 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
News proposée par : zebden
Dernière révision de la news : le 19/05/2005 à 13:37
pdfTélécharger cette news au format PDF

Les commentaires


le 19/05/2005 à 14:50
!!! 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
le 19/05/2005 à 15:05
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.
le 19/05/2005 à 20:47
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. ;)
le 19/05/2005 à 22:15
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...
le 19/05/2005 à 22:37
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 ;) ++
le 20/05/2005 à 09:28
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
le 20/05/2005 à 09:30
mieux ?
le 20/05/2005 à 10:47
BO GOSSE :)
le 20/05/2005 à 19:11
bjour !! Quel homme !! la reponse à tous ce bonhomme ;) ++
le 27/06/2005 à 17:11
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 ...
le 27/06/2005 à 17:12
Arff ... si, en faisant des statistiques sur le PHP_SELF. Mais là, c'est vraiment le baton pour se faire battre.

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog