Referencias de Caracteres HTML y Prevención de XSS

En HTML, ciertos caracteres tienen significado especial y deben ser escapados cuando se muestran como texto. Las referencias de caracteres HTML proporcionan una forma de representar cualquier carácter Unicode usando entidades nombradas (como ©) o referencias numéricas (como © o ©).

Referencias Nombradas vs. Numéricas

  • Entidades nombradas: Referencias legibles como &amp; (para &), &lt; (para <), &gt; (para >), y &quot; (para "). Preferidas cuando están disponibles.
  • Referencias numéricas decimales: Formato &#nnn; donde nnn es el punto de código Unicode decimal. Ejemplo: &#60; para <.
  • Referencias numéricas hexadecimales: Formato &#xnnn; donde nnn es el punto de código Unicode hexadecimal. Ejemplo: &#x3C; para <.

Prevención de XSS

Los ataques de Cross-Site Scripting (XSS) ocurren cuando scripts maliciosos son inyectados en páginas web. La codificación HTML es una capa crítica de defensa:

  • Siempre codifica la entrada del usuario antes de renderizar en contextos HTML
  • Los cinco caracteres que DEBEN ser codificados: &, <, >, ", y '
  • En contextos de atributos, también codifica cualquier comilla usada como delimitador

Especificación HTML5

Según la especificación HTML5, los agentes de usuario deben reconocer el rango completo de entidades nombradas definidas en la especificación HTML. Nuestro codificador sigue estos estándares para asegurar máxima compatibilidad.