[JSP] Remplacement des codes HTML

Remplacement des codes HTML [JSP] - Java - Programmation

Marsh Posté le 02-06-2008 à 12:04:38    

Bonjour,
 
Existe-t-il une méthode pour remplacer les caractères HTML lorsque l'on lit un champ texte d'un bean ?
 
Par exemple:
  <input type="text" value="<%=bean.getNom()%>" readonly>
Si le champ 'nom' contient du HTML ca va me casser le formattage de ma page.


---------------
Light is right
Reply

Marsh Posté le 02-06-2008 à 12:04:38   

Reply

Marsh Posté le 02-06-2008 à 13:15:01    

Non, cela ne va pas casser le formattage de ta page. Il suffit de faire l'essai.
Par exemple, si nom contient "<h1>gros titre</h1>", alors value contiendra "<h1>gros titre</h1>" en considérant que <h1> n'est pas une balise mais une valeur. Il peut y avoir n'importe quoi dans value, sauf, ..., suspens, smiley du roulement de tambour, ... un guillemet, car html considèrera que c'est la fin de la value, et le reste va polluer le input.

Reply

Marsh Posté le 02-06-2008 à 13:38:00    

Je dirais qu'il est préférable de vérifier que la valeur est valide au moment où tu créés/modifie ton bean au lieu de rajouter du code dégueulasse partout où tu veux utiliser la valeur

Reply

Marsh Posté le 02-06-2008 à 13:53:42    

Je suis d'accord, mais en fait dans mon problème j'avais le nom d'une personne avec justement un guillemet  :D .
Donc a priori il n'y a rien en JSP qui pourrait me convertir un guillemet ?


---------------
Light is right
Reply

Marsh Posté le 02-06-2008 à 14:30:51    

nerisson a écrit :

Je suis d'accord, mais en fait dans mon problème j'avais le nom d'une personne avec justement un guillemet  :D .
Donc a priori il n'y a rien en JSP qui pourrait me convertir un guillemet ?


StringUtils.escapeHTML.

 

En JSP 2.0, il y a aussi la taglib c (c:out autoescape) et la fonction el fn:escapeXml

olivthill a écrit :

Non, cela ne va pas casser le formattage de ta page. Il suffit de faire l'essai.
Par exemple, si nom contient "<h1>gros titre</h1>", alors value contiendra "<h1>gros titre</h1>" en considérant que <h1> n'est pas une balise mais une valeur. Il peut y avoir n'importe quoi dans value, sauf, ..., suspens, smiley du roulement de tambour, ... un guillemet, car html considèrera que c'est la fin de la value, et le reste va polluer le input.


Ca ouvre aussi la porte aux attaques XSS [:spamafote]


Message édité par masklinn le 02-06-2008 à 14:31:33

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed