Cross-Site Scripting (XSS) es una vulnerabilidad donde un atacante inyecta scripts maliciosos en páginas web vistas por otros usuarios.
Tipos de XSS
Reflejado: el script viene en la URL o formulario. Almacenado: el script se guarda en la base de datos. DOM-based: el script se ejecuta mediante manipulación del DOM.
Prevención
Escapa toda salida de HTML (React lo hace por defecto con JSX). Usa Content-Security-Policy (CSP). Sanitiza entradas con DOMPurify. HttpOnly y Secure en cookies.
CSP contra XSS
Cabecera Content-Security-Policy: script-src 'self' bloquea scripts inline. nonce o hash para scripts legítimos. strict-dynamic para flexibilidad.
Marcos modernos
React, Vue, Svelte escapan por defecto. Desactivar dangerouslySetInnerHTML o v-html solo con contenido sanitizado. Nunca concatenes HTML manualmente.

