código JS que da vulnerabilidad xss

0

A continuación hay un fragmento de código JS:

if(!(window.location.href.indexOf('?')> -1)){                      
  id= window.location.href.slice(window.location.href.lastIndexOf('/') + 1);    
 }
 location.hash='var/' + id;  

Cuando probé este código en Fortify, tuve un problema de vulnerabilidad XSS: "El método envía datos no validados a un navegador web *".

¿Alguien podría ayudar a resolver el problema?

    
pregunta Nagendra 03.05.2015 - 09:22
fuente

1 respuesta

2

No hay XSS en el código pegado. Esto solo está configurando el hash de la URL

por ejemplo https://example.com/foo/1#var/1

utilizando el objeto location . XSS solo puede ocurrir cuando algo en un documento HTML está configurado sin la codificación adecuada.

Tenga en cuenta que esta respuesta se basa únicamente en el código publicado y no se hacen suposiciones acerca de dónde se usará el hash posteriormente. Si el uso del hash da lugar a una vulnerabilidad, la vulnerabilidad reside aquí y no en el código publicado.

El motivo de esto es que la aplicación está procesando la entrada del usuario como si fuera de confianza. Si el código anterior podría crear un hash peligroso, entonces un atacante también podría crear el hash peligroso sin usar el código publicado exactamente de la misma manera que un el ataque XSS reflejado funciona. p.ej. el atacante consigue que el usuario visite una URL especialmente diseñada como

https://example.com/foo/1#<script>alert('xss')</script>

para desencadenar el ataque. Es hasta el código de procesamiento de hash para hacer frente a esto, no el código que genera el hash.

    
respondido por el SilverlightFox 05.05.2015 - 15:12
fuente

Lea otras preguntas en las etiquetas