как убедиться в загруженном типе файла в c # - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу позволить пользователям загружать изображения и видео на мой сайт. Обычно я проверяю расширение изображения на jpg или png. Но я проверил безопасность своего веба, загрузив оболочку для взлома, поэтому я изменил расширение оболочки на .jpg.

К сожалению, он был нормально загружен в папку хоста и показывает все мои файлы, поэтому, если кто-нибудь знает лучший способ убедиться, что этот файл является видео или этот файл является реальным изображением, прежде чем загружать его на хост в C# Asp.net веб-формы.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Вы можете проверить расширение файла. Используя этот код.

   protected void ValidateFile(IFormFile file)
    {
        if (file == null)
            throw new Filters.ApiException(this.Localizer[string.Format(ErrorConst.SelectFile)].Value, 400);
        if (file.Length < 1)
            throw new Filters.ApiException(this.Localizer[string.Format(ErrorConst.ErrorImageSize)].Value, 400);

        int filesize = 3;
        string[] supportedTypes = new[] { "jpg", "jpeg", "png", "bmp" };
        var fileExt = System.IO.Path.GetExtension(file.FileName).Substring(1);
        if (!supportedTypes.Contains(fileExt))
            throw new Filters.ApiException(this.Localizer[ErrorConst.ErrorImageExtension].Value, 400);
        if (file.Length > (filesize * 1024 * 1024))
            throw new Filters.ApiException(this.Localizer[string.Format(ErrorConst.ErrorImageSize, filesize)].Value, 400);
    }

И это проверенный файл и размер файла.

Спасибо.

0 голосов
/ 05 ноября 2018

Вы можете проверить тип содержимого файла. Следующий код может помочь:

public static readonly string[] mimeTypes = new[] { "image/jpeg", "image/png" };

if (mimeTypes.Contains(fileBox.PostedFile.ContentType))
{ // Do something.    
}

Кроме того, я бы предложил проверку на стороне клиента. Это поможет проверить тип контента перед публикацией на сервер. Это также поможет сэкономить пропускную способность.

Следующая ссылка должна вам помочь:

Как проверить тип файла MIME с помощью javascript перед загрузкой?

Не только расширение файла, но и проверка типа пантомимы для «image / jpeg, image / png, image / gif» - это путь.

...