Que son las entidades HTML
HyperText Markup Language, o HTML, es el idioma principal de las páginas web en Internet. Incluye soporte para varios otros lenguajes que agregan características y estilos adicionales como JavaScript y CSS. Todos estos lenguajes están basados en texto con algunos caracteres significativos que se utilizan para separar las cadenas literales que se deben imprimir en el navegador y el código que se debe interpretar y ejecutar.
Sin embargo, este diseño tiene algunos problemas, que se vuelven obvios cuando se desea imprimir uno de los caracteres significativos en el navegador. Los mejores ejemplos de caracteres para utilizar son los símbolos "menor que" y "mayor que". Respectivamente, estos símbolos se utilizan para abrir y cerrar segmentos de código en HTML. La forma correcta de imprimir de forma segura estos caracteres en la pantalla es utilizar entidades HTML.
Entidad HTML y seguridad
Gracias a estos caracteres que tienen un significado especial hay que tener mucho cuidado para asegurarte de reemplazarlos con la versión de la entidad HTML si quieres que se impriman en el navegador. Desafortunadamente, muchos desarrolladores web olvidan que los usuarios pueden enviar entradas a muchos sitios web. Si esta entrada del usuario incluye caracteres significativos y no se reemplazan con entidades HTML, en un proceso llamado desinfección, el sitio web tiene una vulnerabilidad de Cross-Site Scripting (XSS).
¿Qué es la vulnerabilidad Heartbleed?Consejo: no intente enviar caracteres especiales a sitios web en un intento de encontrar vulnerabilidades XSS. Si lo hace, técnicamente es piratería y es un delito penal a menos que tenga el permiso del propietario del sitio web.
Cómo funcionan las entidades HTML (y a veces no)
Las entidades HTML funcionan porque el navegador sabe que las muestra como un carácter especial relevante y no las trata como un carácter especial. Todas las entidades HTML comienzan con un ampersand "&" y terminan con un punto y coma ";". La mayoría de los caracteres se identifican mediante un número de entidad, aunque algunos caracteres especiales también tienen un nombre abreviado. Por ejemplo "&", "<”, and “>"Tienen los números de entidad" & ","<”, and “>"Además de los nombres de las entidades" & amp; "," & lt; "y" & gt; "respectivamente. El navegador sabe que estas cadenas significan que debe mostrar los caracteres relevantes.
Consejo: puedes encontrar una lista completa de nombres de entidades de personajes aquí, aunque la compatibilidad con el nombre de la entidad varía según el navegador.
En la mayoría de los casos, los usuarios solo deberían ver los caracteres representados por entidades HTML. Sin embargo, es posible mostrar caracteres codificados, comúnmente y "&", a través de un proceso llamado "Codificación doble". Esto sucede cuando el carácter comercial aparece en su versión codificada. La doble codificación generalmente ocurre cuando la entrada está correctamente codificada, como se envía, sin embargo, cuando se emite se vuelve a desinfectar. Esto da como resultado el ampersand al comienzo de "& amp;" se codifica por segunda vez y aparece como "& amp; amp;", el navegador lo interpreta correctamente como una cadena que debe imprimirse como "& amp;" decodificando la entidad HTML e ignorando la entidad parcial.
ProtonMail: cómo habilitar la autenticación de dos factores