Entidades HTML

Codifica y decodifica caracteres y entidades especiales HTML

Casos de uso

  • Escapar contenido del usuario para HTML seguro — convertir `<script>` a `&lt;script&gt;` antes de insertarlo en una plantilla.
  • Leer el código fuente de un correo electrónico HTML en bruto — decodificar `&amp;` y `&#x2603;` para ver lo que realmente ve el destinatario.
  • Construir fragmentos seguros para CMS — codificar `'` y `"` para que una columna de base de datos no rompa un contexto SQL o HTML.
  • Depurar informes XSS — desescapar entradas sospechosas para recuperar la carga original que las herramientas de seguridad marcaron.

¿Cuándo necesitas codificación de entidades HTML?

Cuando el texto proporcionado por el usuario se renderiza en HTML, caracteres como `<` y `>` deben ser escapados como `&lt;` y `&gt;` para evitar ser interpretados como etiquetas. Omitir esto es la causa raíz de las vulnerabilidades XSS. La herramienta codifica los cinco caracteres HTML inseguros principales más cualquier Unicode que elijas escapar.

Las entidades numéricas (`&#38;`, `&#x26;`) funcionan en cualquier contexto HTML. Las entidades nombradas (`&amp;`, `&copy;`) son más fáciles de leer pero solo funcionan en HTML — los analizadores XML no conocen todos los nombres HTML.

Ejemplos

EntradaResultado
<script>alert('hi')</script>&lt;script&gt;alert(&#39;hi&#39;)&lt;/script&gt;
© 2024 — Wenee&copy; 2024 &mdash; Wenee

Preguntas frecuentes

¿Qué caracteres necesitan codificación?

Como mínimo: `<`, `>`, `&`, `"`, y `'`. Codificar más (como todos los no ASCII) es inofensivo pero aumenta el tamaño de la salida.

¿Son mejores las entidades nombradas o numéricas?

Las nombradas (`&amp;`) son más legibles en HTML; las numéricas (`&#38;`) funcionan tanto en HTML como en XML. Elige numéricas para seguridad entre formatos.

¿Es la codificación de entidades HTML lo mismo que la codificación de URL?

No — las entidades HTML utilizan la sintaxis `&...;` para contextos HTML. La codificación de URL utiliza `%XX` para contextos de URL. Sirven para diferentes capas.

¿Esto previene XSS?

Codificar contenido de texto en la salida HTML previene el vector XSS más común. Otros contextos (valores de atributos, cadenas de JavaScript, CSS) necesitan sus propias reglas de escape.

¿Se envía mi texto a algún lugar?

No. La codificación y decodificación ocurren completamente en tu navegador.