2011-11-18 7 views
6

yo estaba tratando de imprimir un texto entre <textarea> y </textarea> etiquetas, pero me he dado cuenta de que si de entrada de algunos personajes como < y >, área de texto los convierte automáticamente a &lt; y &gt;.hace <textarea> auto-encode inner html?

Ejemplo:

<textarea><script></textarea>

producirá este código HTML

<textarea>&lt;script&gt;</textarea>

¿Me puede explicar por qué sucede esto?

Gracias de antemano, se agradece cualquier ayuda, saludos cordiales.

+0

"... producirán este código HTML ..." ¿Cómo? ¿Del lado del servidor o del lado del cliente? –

+0

La salida que quise decir es html en bruto, como se ve desde la opción "ver fuente html" del navegador, en el lado del cliente. – BeNdErR

Respuesta

4

No escapa el contenido. La fuente HTML sigue siendo exactamente la misma. Solo tiene la capacidad de mostrar los contenidos tal como están, lo que supongo que es un requisito de la etiqueta <textarea>.

+0

Gracias cherouvim por su respuesta. ¿Sabes si hay una forma de generar '<' and '>' tal como están (no como '<' y '>')? Estoy estudiando los ataques xss y estaba buscando una forma sencilla de inyectar algo como en ese área de texto. Intenté también con% 3c y% 3e, pero no funcionó. Gracias de nuevo, mis mejores deseos – BeNdErR

0

elemento DOM debe tener propiedades similares:

innerHTML = '&lt;script&gt;' 

innerText = '<script>'