24-07-2013, 02:09 PM
A vue de nez, ça a l'air d'une variante des failles XSS. Les sites sur lesquelles cette faille est exploitable sont légion, et s'il y a une forte fréquentation, en 15 minutes, on peut récolter des dizaines d'identifiants de session qu'il suffit alors de copier dans ses propres cookies pour se connecter aux comptes des autres joueurs sans mot de passe.
La parade consiste à filtrer tout ce que l'utilisateur peut écrire et qui sera affiché aux autres joueurs (livre d'or, chat, description de profil, messagerie privée, forum, etc.). Le filtrage le plus simple consiste à ne laisser aucune mise en forme (pas de HTML, pas de BBCode ni équivalent) que du texte filtré par exemple avec htmlspecialchars si on utilise PHP.
Dès lors qu'on propose du BBCode ou carrément un éditeur WYSIWYG, il faut être très prudent (attention au liens, aux contenus des images, etc.) tout ce qui permet de charger une ressource ou de faire un lien vers un autre domaine est potentiellement dangereux. Et bien sûr, il faut filtrer tous les contenus javascript (les onmachin="", les balise script, les href="javascript:...", ou href encodé en base64 etc.)
La parade consiste à filtrer tout ce que l'utilisateur peut écrire et qui sera affiché aux autres joueurs (livre d'or, chat, description de profil, messagerie privée, forum, etc.). Le filtrage le plus simple consiste à ne laisser aucune mise en forme (pas de HTML, pas de BBCode ni équivalent) que du texte filtré par exemple avec htmlspecialchars si on utilise PHP.
Dès lors qu'on propose du BBCode ou carrément un éditeur WYSIWYG, il faut être très prudent (attention au liens, aux contenus des images, etc.) tout ce qui permet de charger une ressource ou de faire un lien vers un autre domaine est potentiellement dangereux. Et bien sûr, il faut filtrer tous les contenus javascript (les onmachin="", les balise script, les href="javascript:...", ou href encodé en base64 etc.)