Un ataque por cross site scripting consiste, cuando una aplicación web es vulnerable, en ejecutar sentencias de programación de aplicaciones web, pudiendo ejecutar código javascript, e incluso anexionar a la página web del objetivo código malicioso que ejecutaría automáticamente cualquier usuario que acceda a ella. Los ataques XSS se diferencian en dos categorías: reflejado y permanente.

El ataque reflejado únicamente estará funcionando cuando el atacante esté todavía online tras ejecutar dicho ataque. Una vez cerrase su navegador o el medio por el que ha ejecutado el ataque XSS este desaparecería. El permanente como indica su nombre, permanece a pesar de cesar la conexión. A continuación, se harán ejemplos de los tipos de XSS.