¿Existe algún riesgo relacionado con permitir que el usuario proporcione una URL como su perfil de imagen?

9

Al crear un sitio web, me gustaría permitir que los usuarios especifiquen una URL que apunte a una imagen que se usará como imagen de perfil (incluida en el DOM HTML como a).

Pero antes de hacer algo estúpido, me preguntaba si una persona malintencionada podría usar esto para otros propósitos.

Por lo que sé, es posible especificar un archivo .php (por ejemplo), que lea la sesión de cookies y luego muestre la imagen. Pero no tengo nada arriesgado almacenado en la cookie.

¿Qué más se puede hacer? ¿Es esta una elección muy (muy, muy mala) o puedo ir con ella?

Encontré que IE6 tenía un problema con esto que podría llevar a un exploit XSS, pero bueno, es IE6, escrito en 1874 verdad? (Spoiler: no me dirijo a los usuarios de IE6 en absoluto;))

Gracias por tu ayuda.

    
pregunta Cyril N. 13.02.2013 - 11:05
fuente

2 respuestas

10

En realidad, hay varios problemas con el enfoque:

  • Debes preocuparte por los CSRF (alguien puede usar http://somesite.com/?q=deleteallmydata y cualquier persona que visite el sitio tendrá se eliminaron sus datos en somesite.com), y dependiendo de su código, usted es más vulnerable a XSS .

    Esto puede ser sofisticado, por ejemplo, para empezar, podrían mostrar una imagen y luego cambiarla con una redirección.

  • Si su sitio está ocupado, se puede usar para organizar un ataque DDOS efectivo: alguien podría ingresar una URL para algún sitio que no le guste, probablemente de una manera que haga funcionar los recursos del servidor (una página de búsqueda o similar) .

  • Los ataques en el host de imágenes de un usuario ahora son ataques en sus usuarios .

Si no desea manejar imágenes, es posible que desee considerar un host de confianza, como enlace (StackExchange hace algo como esto) para dirigir a sus usuarios a, y limitar sus URL a ese sitio solamente.

    
respondido por el Bob Watson 13.02.2013 - 11:24
fuente
2

Un problema es que un atacante puede poner un recurso de imagen detrás de la Autenticación básica HTTP y cambiar el reino para que sea el nombre de su sitio.

La mayoría de las veces, los usuarios menos experimentados ingresarán alegremente sus contraseñas y las enviarán al servidor remoto.

XSS, como se mencionó anteriormente, también es otro problema potencial.

Desde una perspectiva de rendimiento, alguien puede colocar imágenes en un sitio lento, y su sitio se sentirá lento para sus usuarios.

    
respondido por el matt s 14.02.2013 - 08:48
fuente

Lea otras preguntas en las etiquetas