2012-02-03 13 views
10

Quiero escapar para XSS en un contexto html, y hasta ahora trato los <,> y los caracteres. Aparentemente también se recomienda escapar del ampersand, pero ¿por qué? (Aparte de mantener el html válido , vamos a suponer que esto no es un problema)Cross Site Scripting (XSS): ¿Necesito escapar del ampersand?

Así que lo que estoy preguntando es: Cuando me escape <,> y", alguien puede demostrar cómo el signo todavía puede permitir un ataque XSS en un contexto html?

¡Salud!

Respuesta

6

Realmente deberías echarle un vistazo en la Hoja de referencia de prevención de OWASP XSS.

Debe escapar & porque puede usarse para eludir otras defensas. Considere este código:.

<button onclick="confirm('Do you really want to delete <%= data_from_user; %> ?'">Delete</button> 

Para defenderse de XSS en el interior del controlador de eventos onclick, el desarrollador se escapa',", < y> en data_from_user y piensa que todo está bien, el problema es que si los tipos atacante &#39; la que pasa el escape, pero termina permitiendo que el atacante ejecutar javascript

Ejemplo aquí:.. http://erlend.oftedal.no/blog/?blogid=124

+0

ejemplo interesante, alegre lo que intenté.! era inyectar esto en el html: < script type = "text/javascript" > cual no se ejecuta, howerver muestra como "

1

utiliza & para concatenar params en la URL:

reflejada XXS:
código escritura se inyecta en la URL, que la página web refleja a las víctimas

http://mybank.com/page?message= < script src = “ evil _script.js "/>

+2

abajo del votante debe explicar su punto de vista estoy de acuerdo con esta respuesta 1 – tusar

Cuestiones relacionadas