Une mauvaise intégration de Google... et c’est la faille XSS
C’est d’une banalité affligeante : la mise en oeuvre du moteur de recherche Google sur les pages du site Web du MagIT n’était pas sécurisée; elle comportait une faille ouvrant la voie à du Cross Site Scripting (XSS). Merci à Eric Séguinard de nous l’avoir indiqué et aidé à le corriger.
C’était tout bête : «aucun contrôle ni filtre n’était appliqué à la variable passée par LeMagIT à Google pour les recherches sur le site Web. Une tierce personne pouvait dès lors l’utiliser pour injecter du code JavaScript arbitraire, via l’URL ou directement dans le champ recherche des pages Web,» explique Eric Séguinard.
Comment corriger cela ? Très simple selon lui : «en faisant retraiter les données passées à la variable par la fonction htmlentities de PHP.» Simple, efficace mais manifestement oublié dans le feu de l’action lors du développement initial du site Web du MagIT. Un grand classique du genre, selon le consultant en sécurité : «ce type de faille est courant. Cela va très vite en fait de faire des applications avec des failles. Ne l’oublions pas : c’est toujours un humain qui développe...» Surtout, «qu’il s’agisse de Google ou d’autre chose, chaque intégration d’une technologie tierce peut occasionner des failles de sécurité, ne serait-ce que du fait d’une intégration trop rapide. Le point clé, c’est de toujours penser qu’à chaque fois que l’on ajoute une fonctionnalité pour les utilisateurs, on ajoute un risque.»
Du coup, «lorsque c’est le cas, il faut tester que l’utilisateur ne peut pas injecter des données illégitimes. Et sur ce genre de faille très simple à corriger, il n’y a pas de question à se poser : on corrige.»
Et plus loin de recommander : «de plus en plus, les développements s’appuient sur des frameworks, des composants tiers, etc. Il faut faire un travail de veille constant autour de ce que l’on utilise pour ses applications.»