Por Just Quality, desarrollo de software en Granada.

Texto

HTML Encode

Codifica caracteres especiales como entidades HTML.

Texto HTML

<strong>GeneraTodo & texto</strong>

Texto codificado para HTML.

  • Convierte caracteres especiales en entidades HTML.

Escapar ayuda a mostrar texto, pero en una aplicación real de eso se encarga el framework.

Cinco caracteres y por qué importan

Menor que, mayor que, ampersand, comillas dobles y apóstrofe son los que hay que convertir en entidades para que un texto se muestre tal cual en lugar de interpretarse como marcado. Es el paso que evita que un comentario de usuario abra una etiqueta script en tu página.

Convierte los caracteres especiales en entidades HTML para poder mostrarlos como texto sin que el navegador los interprete. Es lo que necesitas para enseñar código dentro de una página.

Escapar antes de publicar

  • Mostrar fragmentos de código dentro de una página web.
  • Incluir ejemplos de HTML en documentación o en un artículo.
  • Escapar texto antes de insertarlo en una plantilla.

Escapar no sustituye a sanear

Escapar el HTML ayuda a mostrar texto de forma segura, pero en una aplicación real el escapado correcto depende del contexto y debe hacerlo el framework de forma sistemática. El texto no sale de tu navegador en ningún momento.

Preguntas frecuentes

¿Qué conviertes exactamente y con qué criterio?

Los cinco caracteres de siempre, aunque el detalle está en el cómo. El apóstrofe lo escribimos como ' y no como ', porque la forma numérica la entiende cualquier navegador viejo y la otra ni siquiera estaba en HTML 4. Y convertimos el ampersand antes que nada: si lo dejáramos para el final, acabaríamos escapando las entidades que nosotros mismos habíamos creado.

¿Con esto ya estoy protegido frente a un XSS?

Ayuda, pero no te confíes. Escapar esos caracteres es la defensa correcta cuando el texto va a parar entre dos etiquetas. Dentro de un atributo sin comillas, dentro de un bloque de JavaScript o dentro de una dirección, las reglas cambian y este escapado se queda corto. En una aplicación de verdad esto lo hace el framework en cada plantilla, no tú a mano en una página.

¿Para qué lo uso en el día a día?

Para enseñar código sin que se ejecute. Escribe <script> en tu artículo y el navegador se lo cree; escribe &lt;script&gt; y el lector ve la etiqueta escrita, que es lo que querías. Sirve igual para meter un ejemplo en una documentación o en una plantilla de correo.