Краткий ответ: Нет.
Более длинный ответ:
Сравнение расширения и его соответствия типу MIME на самом деле ничего не мешает.Как было сказано в комментариях, еще проще изменить расширение файла.Тип и расширение MIME следует понимать только как подсказки, в них нет внутренней защиты.
Обеспечение того, чтобы входящие файлы не причиняли вреда, во многом зависит от ваших целей.В вашем случае я понял, что вы ожидаете изображения.Итак, что вы могли бы сделать, это сначала выполнить некоторые проверки работоспособности: отсканируйте первые пару байтов, чтобы увидеть, содержат ли файлы соответствующие сигнатуры заголовков изображений - они есть во всех соответствующих форматах изображений.
«Заголовки сигнатур» помогут вамрешить, какой формат изображения пытается выдать себя за файл.На следующем этапе вы можете проверить, соответствует ли остальное содержимое формату основного изображения.Это гарантировало бы вам, что файл действительно является файлом изображения этого определенного формата.
Но даже в этом случае файл может быть тщательно обработан таким образом, чтобы при отображении изображения использовалась популярная библиотека для его отображения.изображение (например, libpng и т. д.) может столкнуться с переполнением буфера, найденным злоумышленником в этой библиотеке.
К сожалению, нет способа активно предотвратить это, кроме как вообще не допустить никакого вмешательства со стороны клиента.