Sneha Bhushan Ответов: 1

Как ограничить файлы с расширениями, такими как .exe,. zip и т. д


Если я загружу файл test.exe, затем мое приложение ограничивает его и выдает предупреждающее сообщение.
Но, если я переименую файл как test.exe.txt приложение успешно загружает его в базу данных.

Как ограничить загрузку для test.exe.txt или test.zip.txt-что?

Пожалуйста, предложите.

Спасибо,
Снеха.

Что я уже пробовал:

Я пытался ограничить contenttype файла, но он не работает так, как требуется.

например:

If (fuAttachment.PostedFile.ContentType <> "text/HTML" And fuAttachment.PostedFile.ContentType <> "text/plain" And fuAttachment.PostedFile.ContentType <> "Application/msword" And fuAttachment.PostedFile.ContentType <> "image/jpeg" And fuAttachment.PostedFile.ContentType <> "image/GIF" And fuAttachment.PostedFile.ContentType <> "application/pdf" And fuAttachment.PostedFile.ContentType <> "Application/x-msexcel" And fuAttachment.PostedFile.ContentType <> "image/bmp" And fuAttachment.PostedFile.ContentType <> "application/vnd.ms-outlook" And fuAttachment.PostedFile.ContentType <> "image/tiff" And fuAttachment.PostedFile.ContentType <> "video/mp4" And fuAttachment.PostedFile.ContentType <> "application/rar" And fuAttachment.PostedFile.ContentType <> "video/mpeg") Then
                    lblMsg.Visible = True
                    lblMsg.Text = "Upload JPG / BMP / JPEG / TIF / PDF / Doc / Excel / Zip format / MP4 / MPEG / MPG/ RAR / TXT / HTML / MSG files only"
                    Return False
                    Exit Try

F-ES Sitecore

google "c# read file magic numbers"

1 Ответов

Рейтинг:
1

CPallini

Поскольку вы не можете доверять расширению файла, то вам нужно прочитать хотя бы несколько байтов двоичного файла, чтобы определить его точную природу. Смотрите, например: Список подписей файлов - Википедия[^] и исполняемый файл - как определить, является ли файл EXE или DLL? - переполнение стека[^].