Riesgo A7 en OWASP - Secuencia de comandos en sitios cruzados

Author
By Darío Rivera
Posted on 2021-12-04 in OWASP

En nuestro post Qué es OWASP y por qué todo desarrollador debería conocerlo vimos una introducción a OWASP y por qué es tan importante en el desarrollo de aplicaciones web. Dentro del proyecto TOP TEN, vamos a ahondar un poco en cada una de los diez riesgos de seguridad más críticos en aplicaciones web. Hoy es el turno del Riesgo A7 - Secuencia de comandos en sitios cruzados (XSS).

Definición

Este riesgo refiere a una vulnerabilidad que permite ejecutar código arbitrario en el lado del cliente a través de una página web. Ocurre generalmente cuando no se validan las entradas del usuario en un formulario o en la URL de la aplicación. Esta es la segunda vulnerabilidad más común y se encuentra en alrededor de dos tercios de todas la aplicaciones web.

Ejemplos

- Un mensaje que se imprime en la pantalla del usuario que es recibido por GET
(Ej: http://example.com/?message=formulario%20enviado).
- Un mensaje que se imprime en en muro o lista de posts que se guardó sin validar entidades HTML.

Prevención

- Se debe escapar caracteres no confiables o entidades HTML que pudieran inducir un posible ataque XSS. Algunos foros en la red solo permiten un número limitado de etiquetas HTML en sus posts.
- Utilizar frameworks que implementen o incorporen dentro de sus funciones métodos de escape de caracteres.
- No imprimir en el navegador datos no confiables.
- Utilizar una política de seguridad de contenido adecuada que bloquee este tipo de ataques (X-XSS-Protection).


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.