Protection contre injection HTML - HTML/CSS - Programmation
Marsh Posté le 13-12-2009 à 23:35:06
en PHP, t'as les fonctions htmlentities et htmlspecialchars pour éviter ce genre de souci à l'affichage.
Mais si tu parles de J2EE, c'est que tu dois faire référence au Java (et non javascript) ... donc mauvaise cat'.
Marsh Posté le 14-12-2009 à 16:29:48
Au depart, j'ai pense a le mettre dans la categorie Java, mais ce n'est pas un probleme lie a Java en particulier, c'est un probleme qui concerne la generation de code HTML a partir de n'importe quel langage cote serveur
Ici, le probleme fondamental, c'est HTML et j'aimerais trouver une solution qui soit valable quelque soit le langage de script cote serveur
Pour info, j'ai analyse le code source de mon message precedent (click droit -> view source) avec firefox et on dirait bien que le site hardware.fr resout le probleme comme je le suggerais : remplacer tous les '<' par des '<' et tous les '>' par des '>' de maniere a ne pas interpreter les balises entrees par l'utilisateur.
Je voudrais juste savoir s'il y a que le probleme des balises contre lequel il faut se proteger ou s'il y a autre chose.
Ce probleme peut paraitre benin mais un journal en ligne a pris une forte amende apres qu'un hacker ait reussi a inserer un article faux par un procede similaire a celui-ci.
Le hacker a juste profite d'une faille de ce type pour remplacer un article de journal par un article de son cru. Une personne a ensuite porte plainte parce que le journal diffusait des informations fausses...
Marsh Posté le 14-12-2009 à 16:41:11
Il faut aussi remplacer le caractère & par &. Et si jamais tu injectes tu code dans un attribut (genre <input type="text" value="%{blabla}%"> ) faudra aussi remplacer ' par ' et/ou " par "
Marsh Posté le 14-12-2009 à 16:56:02
liouan a écrit : Ici, le probleme fondamental, c'est HTML et j'aimerais trouver une solution qui soit valable quelque soit le langage de script cote serveur |
Pas possible, ça.
La seule solution efficace c'est de virer tout tag html dans le texte saisi par l'utilisateur (en l'échappant), ce que tu peux faire soit au moment de sa saisie (déconseillé, mieux vaut conserver le message original dans tous les cas), soit à l'affichage.
Marsh Posté le 13-12-2009 à 21:06:11
Salut tout le monde,
je fais une application J2EE qui contiendra pour chaque personne inscrite un blog.
Par nature, le blog permet à la personne qui l'utilise d'y écrire ce qu'elle veut. Je pose donc une question assez générale :
comment protéger l'application de blog contre l'injection de code HTML malicieux ?
Exemple: supposons que je sois naïf et que je décide simplement d'inclure le contenu de l'utilisateur comme ceci:
<p>
{contenu}
</p>
Il suffit donc à l'utilisateur de mettre ce contenu: "</p> Je fais ce que je veux avec ton site <!--"
et mon bout de site devient alors
<p>
</p> Je fais ce que je veux avec ton site <!--
</p>
l'utilisateur peut donc remplacer le contenu de mon site par n'importe quoi.
Pour régler la faille décrite précédemment, je propose de remplacer dans le {contenu} tous les '<' par des '<' et tous les '>' par des '>'
Mais est-ce suffisant? connaissez vous d'autres failles dues à l'injection de code HTML non désiré et connaissez vous des solutions possibles?