Primero pregunto, ¿hay una definición absoluta? He hecho un poco de Google y parece que todos dicen algo diferente.
En SO dice una persona
Existe una vulnerabilidad XSS siempre que una cadena fuera de su La aplicación puede interpretarse como código.
Esto suena similar a una inyección de SQL pero ataca al servidor web, no al usuario?
Otro
Los scripts de sitios cruzados básicamente son una vulnerabilidad de seguridad de la dinámica páginas web donde un atacante puede crear un enlace malicioso para inyectar JavaScript ejecutable no deseado en un sitio web. El caso más habitual de esta vulnerabilidad ocurre cuando las variables GET se imprimen o se hacen eco sin filtrar ni verificar su contenido.
Una vez más, parece que alguien se metería con la URL para poner código malicioso en las variables pasadas GET, pero ¿no sería esto como atacar a uno mismo?
Este artículo estaba en la parte superior de una búsqueda de Google, pero Parece remolacha alrededor del arbusto y no define nada. Implica que XSS se hace generalmente con JavaScript, ¿es cierto?