XSS desde la carga de imágenes: ¿el recorte resuelve la mayoría de los problemas?

1

Estoy probando un cargador de imágenes pero soy un simple desarrollador. Aquí están los principales puntos a considerar:

  • No hay controles de extensión.
  • La imagen se carga en la memoria.
  • Se modifica para tener un tamaño determinado (50px x 50px).
  • Se guarda en la base de datos.
  • De las pruebas, parece que si el tamaño de la imagen falló, entonces, al volver a renderizar la imagen que se muestra, simplemente se rompe
  • La aplicación es asp.net y está en un servidor Windows.

Con la excepción del cambio de nombre de archivo dudoso en Linux, ¿hay alguna debilidad? ¿Se puede ejecutar algo si se guarda en la base de datos? Sugeriré extensiones de lista blanca y tipo de contenido, pero ¿es necesario? Si es posible, proporcione un ejemplo muy básico (¡seguro!) De cualquier problema importante.

    
pregunta user2330270 09.03.2016 - 09:29
fuente

1 respuesta

2

Puede crear una copia completamente nueva de la imagen, guardarla y luego descartar el original.

Tu camino se convertiría en:

  • Subir imagen.
  • Recortar a 50 px x 50 px.
  • Use ImageMagick o algo similar para crear una imagen vacía de 50x50 (en el formato estándar que desee o con otros controles agregados).
  • Copie los datos de píxeles del original al nuevo.
  • Guarda la nueva versión.

Si ImageMagick no puede leer el original, entonces quizás haya algo raro y debería ser rechazado de todos modos.

    
respondido por el Omniwombat 21.03.2016 - 22:19
fuente

Lea otras preguntas en las etiquetas