Piénselo: ¿cómo se ve codificado HTML? Por ejemplo, podría tener este aspecto:
<a href="www.stackoverflow.com">
Por lo que se representará en el cliente como los literales (como < a href = "www.stackoverflow.com" >), no como HTML. Lo que significa que no verá un enlace real, sino el código en sí.
Los ataques XSS funcionan sobre la base de que alguien puede hacer que un navegador cliente analice HTML que el proveedor del sitio no tenía la intención de estar allí; si lo anterior no estuviera codificado, significaría que el enlace provisto estaría incrustado en el sitio, aunque el proveedor del sitio no quería eso.
XSS es por supuesto un poco más complicado que eso, y por lo general implica JavaScript así (de ahí el Cross Site Scripting ), pero para fines de demostración debería ser suficiente este ejemplo sencillo; Es lo mismo con el código JavaScript que con las etiquetas HTML simples, ya que XSS es un caso especial de la inyección HTML más general.
No estoy seguro de por qué alguien desestimó esta pregunta. Me parece lo suficientemente razonable.Además, es importante tener una buena comprensión de cómo funcionan las vulnerabilidades web para que puedan evitarse. – zzzzBov