также, я бы порекомендовал не разрешать пользователям загружать файлы в папку, доступную из Интернета. Даже самое лучшее обнаружение MIME-типа может не получиться, и вы абсолютно не хотите, чтобы пользователи загружали, скажем, исполняемый файл, замаскированный под jpeg, в случае, если ваш сниффинг MIME не удался, но тот, который в IIS, работает правильно.
В мире PHP это еще хуже, потому что злоумышленник может загрузить вредоносный скрипт PHP и позже получить к нему доступ через веб-сервер.
Всегда всегда сохраняйте загруженные файлы в каталоге где-то за пределами корня документа и обращайтесь к ним через некоторый скрипт доступа, который выполняет дополнительную очистку (и, по крайней мере, явно устанавливает изображение / любой тип MIME.