Skip to main content
Todos los Términos Glossary

Cross-Site Scripting (XSS)

Definition

El Cross-Site Scripting es una vulnerabilidad de seguridad en la que los atacantes inyectan scripts maliciosos en las páginas web que ven otros usuarios. Estos scripts pueden robar tokens de sesión, cookies y otros datos confidenciales, o realizar acciones en nombre del usuario. El XSS se presenta en varias formas: reflejado (a través de parámetros de URL), almacenado (en bases de datos) y basado en DOM (en JavaScript del lado del cliente). La prevención requiere una validación de entrada adecuada, una codificación de salida y la implementación de la Política de Seguridad de Contenidos.

Cómo funciona el XSS

El cross-site scripting (XSS) es una vulnerabilidad que permite a un atacante inyectar JavaScript en una página que después cargan otros usuarios. Si una aplicación toma una entrada, un término de búsqueda, un comentario, un parámetro de URL, y la muestra en la página sin la codificación adecuada, un atacante puede introducir un script en lugar de texto. Ese script se ejecuta en el navegador de la víctima con la sesión de la víctima, lo que le permite robar cookies, capturar pulsaciones de teclado o actuar como el usuario.

Los tipos principales

Hay tres formas clásicas. El XSS almacenado guarda el payload en el servidor, en un comentario o un campo de perfil, de modo que afecta a todos los visitantes. El XSS reflejado rebota el payload en el servidor mediante un enlace manipulado. El XSS basado en DOM nunca llega al servidor: JavaScript vulnerable del lado del cliente escribe datos controlados por el atacante en la página. Cada uno requiere una defensa ligeramente distinta, pero todos terminan con código del atacante ejecutándose en un contexto de confianza.

Defenderse del XSS

Las defensas principales son la codificación contextual de la salida, la validación de la entrada y una Content Security Policy sólida que limite lo que puede hacer el script inyectado. Como el XSS acaba provocando la ejecución de JavaScript inesperado en el navegador, la monitorización del lado del cliente añade una capa útil: cside puede señalar cuando una página empieza a ejecutar un script que lee campos sensibles o exfiltra datos, detectando la explotación incluso cuando una vulnerabilidad de inyección concreta pasó desapercibida en la revisión de código.

Definition

¿Qué puede hacer realmente un atacante con una vulnerabilidad XSS?

Cualquier cosa que el navegador del usuario pueda hacer en esa sesión: leer y exfiltrar cookies o tokens, capturar lo que el usuario teclea, incluidas contraseñas y números de tarjeta, reescribir el contenido de la página para hacer phishing, o realizar peticiones autenticadas como la víctima. La gravedad depende de los privilegios del usuario afectado.

Definition

¿Previene el XSS una Content Security Policy?

Una CSP bien configurada dificulta mucho la explotación al restringir los scripts en línea y las fuentes no confiables, pero es una mitigación, no una cura. Las configuraciones incorrectas, los dominios permitidos pero abusables y los sumideros basados en DOM aún pueden explotarse. La CSP funciona mejor combinada con una codificación de salida adecuada.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Reservar una demo

¿Quieres verlo en detalle con un ingeniero?

Treinta minutos, sobre tu propio sitio. Nada de diapositivas.

Te enseñaremos:

Qué scripts de terceros se están ejecutando ahora mismo en tu sitio
En qué punto estás con los requisitos 6.4.3 y 11.6.1 de PCI DSS
Qué parte de tu tráfico son bots y agentes de IA

¿Prefieres mandarnos una pregunta?

Buscando huecos libres…

Solo humanos de verdad. Nos daríamos cuenta.

¿Problemas para reservar? Abrir el calendario en una pestaña nueva

¿Qué quieres resolver?

Cuéntanoslo en una línea y te responderemos con algo útil, no con un discurso genérico.

Solemos ayudar con:

Ver qué scripts de terceros se ejecutan en tu sitio
Evidencias para PCI DSS 6.4.3 y 11.6.1
Bots, agentes de IA y robo de cuentas

¿Prefieres reservar una hora? Elegir un hueco