Является ли HttpPostedFile.ContentType безупречным способом проверки загруженного файла?

Я хочу проверить тип файла, чтобы убедиться, что пользователь загружает изображение типа JPEG, GIF или PNG. Я решил, что вместо проверки расширения файла будет безопаснее использовать HttpPostedFile.ContentType, так как он проверяет тип содержимого MIME.

protected void cvValidateImageType_ServerValidate(object source, ServerValidateEventArgs args)
{
    if (fupImage.HasFile)
    {
        args.IsValid = (fupImage.PostedFile.ContentType.ToLower() == "image/jpg" ||
                        fupImage.PostedFile.ContentType.ToLower() == "image/jpeg" ||
                        fupImage.PostedFile.ContentType.ToLower() == "image/pjpeg" ||
                        fupImage.PostedFile.ContentType.ToLower() == "image/gif" ||
                        fupImage.PostedFile.ContentType.ToLower() == "image/x-png" ||
                        fupImage.PostedFile.ContentType.ToLower() == "image/png");

    }
    else
        args.IsValid = true;
}

Это безупречный способ проверить тип файла, или его можно обмануть?

7
задан Steven 26 October 2010 в 00:31
поделиться