Segun la wikipedia nos dice lo siguiente:
XSS, del inglés Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte inyectar códigoJavaScript en páginas web vistas por el usuario, evitando medidas de control como la Política del mismo origen.
Estos errores se pueden encontrar en cualquier aplicación que tenga como objetivo final, el presentar la información en un navegador web. No se limita a sitios web, ya que puede haber aplicaciones locales vulnerables a XSS, o incluso el navegador en sí. El problema está en que usualmente no se validan correctamente los datos de entrada que son usados en cierta aplicación. Esta vulnerabilidad puede estar presente de forma directa (también llamada persistente) o indirecta (también llamada reflejada).
- Directa (Persistente): este tipo de XSS comúnmente filtrado, y consiste en embeber código HTML peligroso en sitios que lo permitan; incluyendo así etiquetas como <script> o <iframe>.
- Indirecta (Reflejada): este tipo de XSS consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sin usar sesiones y sucede cuando hay un mensaje o una ruta en la URL del navegador, en una cookie, o cualquier otra cabecera HTTP (en algunos navegadores y aplicaciones web, esto podría extenderse alDOM del navegador).
Pues bien; con independencia de que el hallazgo sea o no real, en estos casos siempre cabe esperar poco entusiasmo por parte de los responsables del web “afectado”, y ello por dos razones fundamentales:
- Hay quien afirma que todos los webs tienen alguna vulnerabilidad XSS y sólo hay que saber encontrarla,
- La víctima potencial no es el servidor, sino el usuario.