XSS (Cross-Site Scripting) es una técnica de ataque que aprovecha una vulnerabilidad de una aplicación web para inyectar código JavaScript malicioso en una página y robar las Cookies, la información de sesión, los datos personales, etc., de los usuarios. En la edición 2025 del OWASP Top 10, el XSS está incluido en A05 Injection (inyección).
Según la explicación de OWASP sobre el XSS (a octubre de 2026), el XSS se divide en general en reflejado y almacenado y, aparte, existe el XSS basado en DOM, menos conocido. Son, respectivamente, el XSS reflejado (el script incluido en un parámetro de URL se muestra tal cual en la página), el XSS almacenado (el script guardado en una base de datos se muestra a otros usuarios) y el XSS basado en DOM (se produce al manipular el DOM con JavaScript del lado del cliente).
La hoja de referencia de prevención de XSS de OWASP (a octubre de 2026) explica que no hay ninguna técnica que resuelva el XSS por sí sola y que es necesario combinar correctamente las técnicas de defensa. Se considera que las más eficaces son tres: las funciones de protección del framework, la codificación en la salida (por ejemplo, convertir < en < y > en >) y la sanitización de HTML. Indica que los atributos de Cookie como HttpOnly limitan los daños del XSS, pero no lo evitan, y recomienda usar la cabecera CSP como una capa adicional y no como la defensa principal.
En un acortador de URL, existe riesgo de XSS al mostrar en la página las URLs introducidas por los usuarios. En especial, si se permiten URLs con el esquema javascript:, se ejecuta JavaScript arbitrario al hacer clic en el enlace. La hoja de referencia de OWASP también pone como ejemplo de medida, cuando se usan URLs no fiables como destino de enlaces, permitir solo las URLs cuyo protocolo sea http:// o https://.