Markdown.es Logo Markdown.es

¿Te es útil esta web? Apóyala sin coste: si compras en Amazon, hazlo a través de nuestro enlace de afiliado — el precio es el mismo para ti y nos ayuda a seguir.

Utilidades

Entidades HTML

Convierte caracteres especiales en entidades HTML para mostrar código de forma segura, o recupera el texto original a partir de las entidades.

Texto original
Escapado

Las entidades que importan de verdad

CarácterCon nombreNuméricaCuándo es obligatorio
&&&Siempre, inicia toda entidad
<&lt;&#60;Siempre, abre una etiqueta
>&gt;&#62;Por simetría y seguridad
"&quot;&#34;Dentro de un atributo
'&#39;&#39;Dentro de un atributo
espacio fijo&nbsp;&#160;Para impedir un salto de línea
&euro;&#8364;Nunca con UTF-8
ñ&ntilde;&#241;Nunca con UTF-8

Por qué esto es una cuestión de seguridad

Imagina un formulario de comentarios que publica lo que escribe la gente sin escapar nada. Alguien envía como comentario una etiqueta de script con código dentro. Cuando otro visitante abre la página, su navegador no ve un comentario: ve una etiqueta de script y la ejecuta, con acceso a las cookies y a la sesión de esa persona.

Eso es un ataque de cross-site scripting, y escapar los caracteres lo desactiva por completo: al convertir el menor que en &lt;, el navegador entiende que ahí hay un carácter de texto, no el principio de una etiqueta.

Escapa al mostrar, no al guardar

La práctica correcta es guardar el texto tal cual lo escribió la persona y escaparlo en el momento de mostrarlo. Si escapas antes de guardar, acabas con datos que se van escapando una y otra vez y aparecen esos &amp;amp; que se ven en tantas webs.

Preguntas frecuentes

¿Qué caracteres hay que escapar obligatoriamente en HTML? Solo cuatro son imprescindibles: &, <, > y, dentro de un atributo, las comillas. El resto (tildes, eñes, símbolos) se pueden escribir tal cual si la página declara UTF-8, que es lo normal hoy.
¿Por qué escapar previene ataques de inyección? Porque convierte el código en texto. Si alguien escribe una etiqueta de script en un comentario y lo publicas sin escapar, el navegador la ejecuta. Escapado, el visitante simplemente lee esa etiqueta como texto y no pasa nada.
¿Cuál es la diferencia entre entidad con nombre y numérica? La entidad con nombre es legible (&amp;) pero solo existe para un conjunto limitado de caracteres. La numérica (&#38;) funciona con cualquier carácter Unicode, aunque cuesta más de leer.
¿Tengo que escapar las tildes y las eñes? No, si tu página declara <meta charset="utf-8">, que es lo habitual. Escribir "año" directamente es correcto y más legible que "a&ntilde;o". Solo tiene sentido escaparlas en contextos antiguos o al generar correos.
Todo ocurre en tu navegador

Esta utilidad se ejecuta enteramente en tu equipo con JavaScript. Lo que escribes o pegas no se envía a ningún servidor, no se guarda y no queda registrado en ninguna parte.

¿Buscas una app para instalar?

80+ Apps Markdown

El directorio más completo en español. Filtra por plataforma, precio y uso.

Ver Aplicaciones →