Sí y no.
Las imágenes son solo datos y, como tales, no son diferentes de los campos de formulario, los parámetros GET o cualquier otro tipo de datos proporcionados por el usuario. Realmente no hay nada especial en ellos, excepto que la mayoría de los demás datos que recibirás son de texto, y que normalmente no contienen nada que "posiblemente se parezca a SQL". Sin embargo, este último es un supuesto falso, ya que la mayoría de los formatos de archivo de imagen se ocupan de los metadatos, lo que facilita enormemente la integración de SQL en ellos, e incluso si no lo hacen, la creación de un archivo de imagen que contiene SQL como parte de la corriente de datos binarios No debería ser demasiado difícil.
En pocas palabras: si tiene la parametrización de su consulta en orden (como debería ser), entonces tiene exactamente tanto que temer como con cualquier otro dato suministrado por el usuario: siempre que pase el blob de imagen como parámetro y las llamadas de parametrización de la API de la base de datos no son vulnerables, está bien. Sin embargo, si decide concatenar cosas en su consulta que se han extraído de un archivo cargado, tiene un problema exactamente del mismo tipo que si tuviera una vulnerabilidad de SQLi a través de un campo de formulario.
Otra cosa que debes tener en cuenta al subir archivos es ejecución remota de código . Si no vigila, un atacante puede cargar un archivo PHP, disfrazado de imagen, y engañar a su script para que lo guarde en un lugar donde pueda alcanzarlo y ejecutarlo a través de apache (o, peor aún, en un lugar donde es recogido por un proceso local del sistema, en el peor de los casos, uno que se ejecuta como root). La defensa aquí es verificar e incluir en la lista blanca el tipo MIME de un archivo, asegurarse de que su extensión coincida con el tipo MIME, desinfectar (o simplemente reemplazar por completo) el nombre del archivo y almacenarlo en algún lugar fuera de docroot.