Сведения о вопросе

CPdeveloper

10:35, 28th August, 2020

Теги

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

Просмотров: 348   Ответов: 4

У меня есть папка на моем веб-сервере, используемая для загрузки фотографий пользователями с помощью страницы ASP.

Достаточно ли безопасно давать IUSR разрешения на запись в папку? Должен ли я обеспечить что-то еще? Я боюсь хакеров, которые обходят страницу ASP и загружают содержимое непосредственно в папку.

Я использую ASP classic и IIS6 на сервере Windows 2003. Загрузка осуществляется через HTTP, а не FTP.

Изменить: изменение вопроса для ясности и изменение моих ответов в качестве комментариев.



  Сведения об ответе

+-*/

11:04, 16th August, 2020

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

В мире PHP это еще хуже, потому что злоумышленник может загрузить вредоносный сценарий PHP и позже получить доступ к нему через webserver.

Всегда, всегда храните загруженные файлы в каталоге где-то вне корня документа и получите к ним доступ с помощью некоторого скрипта доступа, который выполняет дополнительную очистку (и, по крайней мере, явно устанавливает тип image/whatever MIME.


  Сведения об ответе

SKY

00:29, 2nd August, 2020

Как пользователь будет загружать фотографии? Если вы пишете страницу ASP, чтобы принять загруженные файлы, то только пользователь, который IIS работает как будет нужно разрешение на запись в папку, так как IIS будет делать файл I/O. ваша страница ASP должна проверить размер файла и иметь некоторую форму аутентификации, чтобы предотвратить хакеров от заполнения вашего жесткого диска.

Если вы настраиваете сервер FTP или какой-либо другой способ передачи файлов, то ответ будет зависеть от выбранного метода.


  Сведения об ответе

LAST

12:18, 23rd August, 2020

Вам придется предоставить разрешения на запись, но вы можете проверить тип mime файла, чтобы обеспечить образ. Вы можете использовать FSO как таковой:

set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile("upload.jpg")
'image mime types or image/jpeg or image/gif, so just check to see if "image" is instr
if instr(f.type, "image") = 0 then
   f.delete
end if
set f=nothing
set fs=nothing

Кроме того, большинство объектов upload COM имеют свойство type, которое можно проверить перед записью файла.


  Сведения об ответе

SSESION

10:50, 23rd August, 2020

Ваш лучший способ заработать доллар, вероятно, будет использовать компонент загрузки (я использовал ASPUpload), который позволяет загружать/скачивать файлы из папки, недоступной с веб-сайта.

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться