Проверка загрузки изображения в .NET - PullRequest
3 голосов
/ 07 февраля 2011

У меня есть страница, где пользователь может загрузить изображение, которое впоследствии сохраняется на сервере.Я делаю простую проверку загруженного файла, проверяя его расширение (.jpg, .png и т. Д.)

Достаточно ли такой проверки для безопасности сервера?Или это оставляет кому-то возможность загружать вредоносный код, который может повредить мой сервер?Если есть возможность проверить загруженные изображения, как это можно сделать?

Ответы [ 3 ]

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

Всякий раз, когда конечные пользователи помещают что-нибудь на ваш сервер, существует вероятность злонамеренного поведения.Хотя маловероятно, что двойной щелчок по изображению .jpg приведет к повреждению вашего окна, было известно, что более странные вещи случаются.(Например, кто знал, что PDF-файлы могут содержать столько проблем с безопасностью!)

Лучше всего попытаться загрузить изображение и посмотреть, распознает ли оно библиотеки GDI + как действительное изображение.Если вы не получите исключение во время выполнения, то вы знаете, что изображение «допустимо».Это, однако, не защитит вас в том случае, если загрузка изображения в GDI + не создает проблемы с вашим боксом.

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

1 голос
/ 07 февраля 2011

С помощью этой проверки каждый может загрузить что угодно, если только он предоставит вам расширение, которое вы ищете.Уязвимости зависят от того, что вы делаете с ними.Если вы повторно обслуживаете их, люди, получающие их, могут быть скомпрометированы.Потребовалось бы немного творчества, чтобы сделать с ними что-то злое, но моя интуиция говорит, что это можно сделать.

Этот ответ ( Проверка изображения из файла в C # ), кажется, имеет некоторые мысли опроверка изображений программно.

1 голос
/ 07 февраля 2011

Обычно вы можете читать / проверять MIME-тип файла, используя urlmon.dll.Посмотрите этот отличный ответ здесь .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...