En este artículo
¿Qué son las entidades HTML?
Las entidades HTML son códigos especiales que representan caracteres que tienen un significado especial en HTML o que no se pueden escribir directamente. Por ejemplo, < es la entidad HTML para el carácter < (signo de menor que), que de otro modo se interpretaría como el inicio de una etiqueta HTML.
Las entidades pueden ser nombradas (<, &, ©) o numéricas (<, &). Las entidades nombradas son más legibles; las numéricas funcionan para cualquier carácter Unicode, incluso sin una entidad nombrada específica.
Cómo funciona la codificación de entidades HTML
El codificador analiza el texto en busca de caracteres que necesitan escape y los reemplaza con sus equivalentes de entidad.
- Escape crítico — < > & " ' siempre se escapan para prevenir inyección HTML y XSS
- Escape extendido — opcionalmente codifica todos los caracteres no ASCII como entidades numéricas
- Modo de decodificación — convierte el HTML codificado con entidades de vuelta a texto plano para su inspección
Pruébalo gratis — sin registro
Codificar entidades HTML →Cuándo usar la codificación de entidades HTML
La codificación de entidades HTML es fundamental para la seguridad y para mostrar caracteres especiales en páginas web.
- Visualización de contenido de usuarios — siempre codifica el contenido generado por usuarios antes de renderizarlo en HTML para prevenir ataques XSS
- Plantillas de correo electrónico — codifica los caracteres especiales en plantillas de correo HTML para garantizar una representación correcta
- Documentación — escapa los ejemplos de código en documentación HTML para que los corchetes angulares se muestren correctamente
Preguntas frecuentes
¿Qué es XSS y cómo lo previene la codificación de entidades?
Cross-Site Scripting (XSS) es un ataque en el que se inyectan scripts maliciosos en páginas web vistas por otros usuarios. Si un usuario envía <script>alert('xss')</script> y se renderiza como HTML, el script se ejecuta. La codificación de entidades convierte < en <, haciendo que se muestre como texto y evitando la ejecución del script.
¿Cuándo debo usar & en lugar de & en HTML?
En atributos y contenido HTML, & debe codificarse como & siempre que no forme parte de una entidad HTML. Un & sin codificar en HTML es un error de análisis. En URLs dentro de atributos href, & también debe codificarse como & para ser HTML válido (aunque los navegadores suelen ser tolerantes).
¿La codificación de entidades HTML protege contra la inyección SQL?
No. La codificación de entidades HTML solo protege contra la inyección HTML (XSS). Para prevenir la inyección SQL, usa consultas parametrizadas o sentencias preparadas en tu capa de base de datos. Son vectores de ataque separados que requieren defensas distintas — nunca confíes en la codificación HTML para prevenir la inyección SQL.