Glosario de ciberseguridad
¿Qué es un ataque XSS?
Cross-Site Scripting (XSS) es una vulnerabilidad web que permite a un atacante inyectar código JavaScript malicioso en una página de confianza. Cuando otros usuarios la visitan, el navegador ejecuta el código del atacante con los mismos permisos que el del sitio legítimo.
Tipos de XSS
- Reflejado: el código viaja en la URL y se devuelve sin escapar en la respuesta.
- Almacenado (persistente): el payload queda guardado en la base de datos (comentarios, perfiles) y afecta a cada visitante.
- DOM-based: la manipulación ocurre íntegramente en el cliente, sin pasar por el servidor.
Qué puede hacer un atacante con XSS
- Robar cookies de sesión y suplantar a la víctima.
- Capturar credenciales con formularios falsos sobre la página real.
- Redirigir a sitios maliciosos o ejecutar acciones en nombre del usuario.
- Distribuir malware o minar criptomonedas desde el navegador.
Cómo se previene un ataque XSS
- Escapar y codificar toda salida según el contexto (HTML, atributo, JS, URL).
- Validar entradas en servidor con listas blancas estrictas.
- Aplicar Content Security Policy (CSP) para limitar qué scripts se pueden ejecutar.
- Marcar las cookies de sesión como
HttpOnlyySecure. - Usar frameworks que escapan por defecto (React, Vue) y evitar
innerHTMLcon datos no confiables.