Saltar al contenido
uencoder

HTML Entities

Las entidades HTML escapan caracteres con significado especial en HTML (<, >, &, ") a la forma &name; o &#NNN; para que se muestren literalmente en lugar de analizarse como marcado.

Propósito

Impiden que la entrada de usuario o el contenido dinámico se ejecuten en el navegador como etiquetas HTML, y son una defensa fundamental contra XSS.

Mecanismo

Las entidades con nombre como &lt; &gt; &amp; &quot; &apos; cubren los 5 caracteres predefinidos de XML. Las entidades numéricas &#NNN; usan un punto de código decimal, y &#xNNN; uno hexadecimal. La decodificación las expande según la tabla de entidades del DTD.

Casos de uso

  • Mostrar < > & como texto en HTML
  • Escape de salida contra XSS
  • Símbolos especiales en correo HTML
  • Escape de contenido XML

Ejemplos

  • entrada
    <script>
    Output
    &lt;script&gt;

    After escaping, the browser shows text instead of executing a script

Errores comunes

Escaping only < and > while missing quotes, enabling XSS in attribute contexts
Escape by context: text needs < > &; attributes additionally need " and '

Términos relacionados

Herramientas relacionadas

References