Léxico TI › Seguridad › XSS basado en el DOM

XSS basado en el DOM

Seguridad Svenska → Actualizado: 2026-10-05

Variante de XSS en la que el exploit nunca toca el servidor — un JavaScript vulnerable en el cliente lee entrada del usuario (hash de la URL, location, localStorage) y la vuelca con eval o innerHTML sin sanitizar.

Caso clásico: document.getElementById('container').innerHTML = location.hash → la URL con #<img onerror=alert(1) src=x> dispara el fallo. Las defensas del lado del servidor (escapar en la salida) NO ayudan — el exploit ocurre en el cliente. Defensa: evitar innerHTML, usar textContent, escapar los datos del usuario antes de manipular el DOM, Trusted Types (API de Chrome que obliga a que el código sea seguro por construcción). React y Vue reducen el riesgo mediante el auto-escapado de JSX. Las aplicaciones de una sola página tienen más superficie de XSS en el DOM porque todo el renderizado ocurre en el cliente. La mejor mitigación es CSP: desactivar 'unsafe-eval' y permitir scripts solo mediante nonce.

← Volver al léxico