Una secuencia de comandos en sitios cruzados o Cross-site scripting (XSS por sus siglas en idioma inglés) es un tipo de ataque informático que permite a un actor de amenazas ejecutar código malicioso en el navegador de otro usuario. Es importante remarcar que el atacante no dirige directamente sus acciones hacia la víctima, sino que explota una vulnerabilidad en un sitio web que la víctima visita. Desde la perspectiva del navegador de la misma, el código malicioso, generalmente escrito en JavaScript, parece ser parte legítima del sitio web, lo que convierte al sitio en un colaborador involuntario del atacante.

Los ataques XSS ocurren cuando una aplicación web utiliza la entrada de un usuario sin validarla o sanitizarla adecuadamente. Esto puede resultar en el robo de cookies, tokens de sesión y otra información confidencial. Además, puede ser utilizado para alterar el contenido de un sitio web, redirigir a sitios maliciosos y controlar el navegador de la víctima.

Mecanismo de ataque

XSS es un vector de ataque que puede ser utilizado para robar información delicada, secuestrar sesiones de usuario, y comprometer el navegador, subyugando la integridad del sistema. Las vulnerabilidades XSS han existido desde los primeros días de la Web.[1]

Esta situación es habitualmente causada al no validar correctamente los datos de entrada que son usados en cierta aplicación, o no sanear la salida adecuadamente para su presentación como página web.

Esta vulnerabilidad puede estar presente de las siguientes formas:

  • Directa (también llamada Persistente): este tipo de XSS comúnmente filtrado, y consiste en insertar código HTML peligroso en sitios que lo permitan; incluyendo así etiquetas como