¿Es peligroso enviar una entrada de usuario sin escape como respuesta HTML al mismo usuario? [duplicar]

1

Entiendo por qué permitir que un código JS arbitrario ingrese al almacenamiento persistente (por ejemplo, en una tabla de base de datos que contiene comentarios de usuarios) es una gran vulnerabilidad, ya que puede terminar siendo distribuida a otros usuarios.

¿Pero digamos que la entrada del usuario que no se escapó nunca se usa o almacena en cualquier lugar aparte de que se reemplaza en la respuesta HTML que se envía de vuelta al mismo usuario? ¿Esto abre alguna vulnerabilidad?

En otras palabras, ¿hay algún daño en devolver al usuario la respuesta HTML que contiene (en el peor de los casos) un código JS arbitrario creado por el mismo usuario?

    
pregunta max 03.11.2016 - 07:22
fuente

1 respuesta

2

Definitivamente no deberías hacerlo. ¿Por qué hacerlo mal si es tan fácil hacerlo bien? Debe tener implementados mecanismos que codifiquen automáticamente HTML todas las variables de salida (que detectarán la mayoría pero no todos los problemas de XSS); Si tiene que considerar los peligros para cada salida, cometerá un error en algún momento.

XSS en un área de usuario aún puede ser explotado si existen otras vulnerabilidades también, ya sea utilizando CSRF o colocando la carga útil de XSS en una cuenta que controla el atacante y luego forzando el registro de la víctima en esa cuenta (a través de Inicio de sesión CSRF, sesión Fijación, o varias otras vulnerabilidades).

Los XSS reflejados en un área de usuario también pueden explotarse a través de CSRF, o posiblemente a través de ClickJacking, si el navegador permite arrastrar / soltar en un marco. Dependiendo de la aplicación, también puede haber más casos en las esquinas que permitan una explotación de este problema.

    
respondido por el tim 03.11.2016 - 08:15
fuente

Lea otras preguntas en las etiquetas