Hay algunas preguntas que abordar aquí:
En primer lugar, el tipo de archivo real. Debe verificar la extensión del archivo, pero eso no indica necesariamente el tipo de archivo real, debe verificar el indicador de tipo de archivo, los "bytes mágicos", existen bibliotecas para muchas plataformas de desarrollo que lo hacen por usted y puede leer más información al respecto aquí .
En el análisis de virus, puede ejecutar un motor de análisis en un servidor y enviar archivos a ese archivo o puede utilizar una API como Virus Total. Hay algunos problemas a considerar al enviar el archivo a una API.
¿Dónde está ubicada la API? Si se encuentra en el mismo país que usted, puede haber restricciones de la ley de datos para enviar el archivo a un motor de escaneo en otro país si esas imágenes pueden contener información personal (como caras, nombres, direcciones de correo electrónico, etc.)
Los archivos cargados en ciertos motores de exploración pueden estar disponibles para otras personas, considere si esto presenta algún problema para usted o sus usuarios. Puede mitigar esto ejecutando su propio sistema 'local' pero esto requerirá infraestructura para ejecutarse y posiblemente incurra en licencias adicionales.
La segunda consideración es cuando escaneas? Si un usuario carga una imagen, ¿escanea a petición tan pronto como intenta subirla? Esto causará un retraso en la carga, pero evitará que los virus ingresen al almacenamiento de archivos. La alternativa es permitir las cargas sin escanear primero y tener un agente que ejecute, escaneando archivos, eliminando los archivos problemáticos a medida que avanza. Depende de los requisitos que tengas.