XSS se produce cuando una parte de los scripts del navegador provenientes de fuentes de terceros se inyecta en el contenido de un sitio web vulnerable, lo que puede considerarse como una instrucción para que el navegador del usuario "presente" un sitio web. En la terminología de la web, el navegador del usuario cree que tales instrucciones son legítimas dentro del dominio del sitio web. En el escenario XSS, el contenido devuelto contiene scripts inyectados que en realidad no son lo que quiere el sitio web (por lo tanto, "de ubicación cruzada"), pero el navegador aún cree que son legítimos y sigue las instrucciones (incluida la ejecución del script del navegador inyectado). >
Por lo tanto, el ataque XSS está " explotando la confianza del navegador del usuario en el contenido devuelto desde un sitio web vulnerable" .
La CSRF se produce cuando un tercero puede activar una solicitud para que se envíe desde el navegador de un usuario víctima al sitio web vulnerable y se procese. Esto es posible porque desde el punto de vista del sitio web, la solicitud parece ser legítima (enviada desde el navegador del usuario - > es posible que contenga las cookies necesarias). De manera similar a XSS, en la terminología actual de la web, los sitios web creen que todas las solicitudes enviadas desde navegadores de usuarios válidos son acciones legítimas que el usuario realmente "inicia" (por ejemplo, al hacer clic en el botón deseado), pero no lo es.
Por lo tanto, el ataque CSRF es " explotando la confianza de un sitio web vulnerable en las solicitudes enviadas por el navegador de un usuario víctima" . (Que en realidad es lo contrario de XSS)
XSS y CSRF a menudo se mezclan porque en muchos escenarios, CSRF se explota a través de la vulnerabilidad de XSS, pero tener la condición XSS no es una condición necesaria para CSRF