Stored cross-site scripting surgen cuando una aplicación recibe datos de una fuente que no es confiable e incluye esos datos dentro de sus respuestas HTTP posteriores de manera insegura.
POST /post/comment HTTP/1.1Host: vulnerable-website.com Content-Length: 100postId=3&comment=This+post+was+extremely+helpful.&name=Carlos+Montoya&email=carlos%40normal-user.net
Una vez enviado este comentario, cualquier usuario que visite la entrada del blog recibirá lo siguiente dentro de la respuesta de la aplicación:
<p>This post was extremely helpful.</p>
Suponiendo que la aplicación no realice ningún otro procesamiento de los datos, un atacante puede enviar un comentario malicioso como éste:
El cross-site scripting reflejado (o XSS) surge cuando una aplicación recibe datos en una petición HTTP e incluye esos datos en la respuesta inmediata de forma insegura.
Supongamos que un sitio web tiene una función de búsqueda que recibe el término de búsqueda introducido por el usuario en un parámetro URL:
La aplicación se hace eco del término de búsqueda suministrado en la respuesta a esta URL:
Suponiendo que la aplicación no realiza ningún otro procesamiento de los datos, un atacante puede construir un ataque como este:
Esta URL da como resultado la siguiente respuesta:
El XSS basado en DOM se procesa completamente en el lado del cliente a través de JavaScript. El DOM XSS se produce cuando se utiliza JavaScript para cambiar el origen de la página a través del Modelo de Objetos del Documento (DOM).