Риски безопасности или проблемы с использованием FileUpload контроля asp.net - и предлагаемые решения - PullRequest
0 голосов
/ 11 февраля 2011

Мне нужно создать утилиту, с помощью которой пользователь сможет загружать отдельные или несколько файлов с использованием asp.net FileUpload Server control.

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

  1. Как запросить у пользователя вирусы и прекратить загрузку
  2. Как проверять файлы на вирусы во время операции загрузки

Может быть несколько угроз безопасности. Пожалуйста, обсудите проблемы / риски с предлагаемыми решениями.

Любой ответ на этот самый заметный.

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 11 февраля 2011

Все риски связаны с тем, что непослушные люди будут загружать вещи, которые могут выполняться на компьютере веб-сервера и вызывать проблемы.

Прагматичным способом предотвращения проблем, связанных с загрузкой вредоносных файлов, является ограничение файла.типы, которые ваш сервер будет принимать, проверяя свойство PostedFile.ContentType.Это идентифицирует MIME-тип.Лучше всего исключить такие вещи, как .exe, и, конечно же, существуют проблемы, связанные с макросами и автоматизацией VBA в файлах, сгенерированных MS Office, таких как .doc и .xls.

. Здесь есть «как»:1009 * Как ограничить тип файла в элементе управления FileUpload

0 голосов
/ 01 июня 2018

Зависит от моего опыта разработки систем общего доступа к файлам, проверка расширений файлов проста, но недостаточно, в iis 6 была ошибка, из-за которой хакеры могли обойти эти проверки, добавив «;» в часть имени файла и загрузите свои shell-скрипты в виде изображения!

Лучший способ - сохранить загруженные пользователем файлы на одну папку выше корневой папки сайта, например, если папка вашего сайта:

C: \ хостинг-пространства \ MyUser \ mydomain.com \ WWW-корень \

ваш код должен сохранять файлы в:

c: \ hosting-space \ myuser \ mydomain.com \ USERUPLOADs \

по этой уловке пользователь iis не может иметь прямой доступ к загруженному вирусу или shell-скрипту!

и использовать файл .aspx для косвенного чтения файлового потока.

<img src="/loadfiles.aspx?name=?????" />

преимуществ много, например, вы можете написать счетчик статистики или проверить сеанс пользователя или избежать межсайтового доступа к вашим пользовательским файлам, но когда вам понадобятся некоторые навыки кодирования, чтобы добавить поддержку возобновления загрузки для объединенных файлов, следует позаботиться тайм-аута сценария и ...

и другое решение, которое я сам не тестировал, - это использовать web.congif, чтобы избежать разрешения запуска сценария из папки загрузки:

<location path="upload">
<system.webServer>
    <handlers accessPolicy="Read" />
</system.webServer></location>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...