«Escapar» hace referencia al proceso mediante el cual, en lenguajes de marcado, lenguajes de programación o lenguajes de scripting, se convierten caracteres o símbolos con significados especiales en cadenas alternativas que pueden procesarse de forma segura.

Por ejemplo, en HTML, los caracteres < y > están reservados para definir etiquetas. Si estos caracteres aparecen directamente en HTML, el navegador web los interpreta como marcado en lugar de como texto sin formato. Por tanto, para mostrar estos símbolos como texto sin formato, deben escribirse como secuencias de escape, como &lt; para < y &gt; para >. Cuando un navegador encuentra estas secuencias de escape, las representa visualmente como los caracteres originales (< y >). Este proceso de conversión es lo que denominamos «escape».

El escape es especialmente importante en el contexto de la seguridad web. Es un aspecto esencial de la «sanitización», una práctica destinada a gestionar de forma segura los datos introducidos por los usuarios a través de formularios web.

Por ejemplo, imagine una aplicación web que toma los datos introducidos por el usuario en un formulario y los muestra directamente en una página posterior. Supongamos que un usuario introduce lo siguiente:


<script>alert("¡Hola!");</script>


Si la aplicación web incluye directamente esta cadena en la página resultante sin aplicar ningún mecanismo de escape, el navegador la interpreta y ejecuta como código JavaScript. Como consecuencia, aparecería una ventana emergente de alerta con el mensaje «Hello!», algo que el creador o administrador del sitio web no pretendía que ocurriera. Aunque este sencillo script podría no causar daños significativos, la posibilidad de que un tercero inserte scripts arbitrariamente en páginas web constituye un problema grave, ya que podría exponer el sitio a ataques de secuencias de comandos entre sitios (XSS) y a otras amenazas de seguridad.

Para evitarlo, la aplicación web debe escapar correctamente los caracteres especiales antes de mostrar dichos datos. Al sustituir < y > por sus correspondientes secuencias de escape (&lt; y &gt;), el script malicioso se mostraría de forma inofensiva como la cadena:


&lt;script&gt;alert("¡Hola!");&lt;/script&gt;


De esta forma, el navegador lo trata estrictamente como texto, neutralizando así cualquier script y mostrándolo según lo previsto, sin provocar comportamientos no deseados.

La mayoría de los lenguajes y frameworks modernos de desarrollo de aplicaciones web incorporan funciones para escapar cadenas correctamente. Sin embargo, comprobar que todas las entradas se escapan de forma adecuada en aplicaciones web complejas, así como identificar y corregir los elementos problemáticos, puede requerir una cantidad considerable de tiempo y esfuerzo. Una solución muy eficaz para este problema consiste en utilizar un firewall de aplicaciones web (WAF), que garantiza que las entradas enviadas por los usuarios se escapen antes de llegar a la aplicación web.

F5 ofrece funcionalidad WAF con la solución F5 BIG-IP.