Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как защитить папку, которая используется для загрузки файлов пользователями?
У меня есть папка на моем веб-сервере, используемая для загрузки фотографий пользователями с помощью страницы ASP.
Достаточно ли безопасно давать IUSR разрешения на запись в папку? Должен ли я обеспечить что-то еще? Я боюсь хакеров, которые обходят страницу ASP и загружают содержимое непосредственно в папку.
Я использую ASP classic и IIS6 на сервере Windows 2003. Загрузка осуществляется через HTTP, а не FTP.
Изменить: изменение вопроса для ясности и изменение моих ответов в качестве комментариев.
кроме того, я бы рекомендовал не позволять пользователям загружать файлы в папку, доступную из интернета. Даже самое лучшее обнаружение типа MIME может потерпеть неудачу, и вы абсолютно не хотите, чтобы пользователи загружали, скажем, исполняемый файл, замаскированный под jpeg, в случае, когда ваш MIME нюх не работает, но тот, что в IIS, работает правильно.
В мире PHP это еще хуже, потому что злоумышленник может загрузить вредоносный сценарий PHP и позже получить доступ к нему через webserver.
Всегда, всегда храните загруженные файлы в каталоге где-то вне корня документа и получите к ним доступ с помощью некоторого скрипта доступа, который выполняет дополнительную очистку (и, по крайней мере, явно устанавливает тип image/whatever MIME.
Как пользователь будет загружать фотографии? Если вы пишете страницу ASP, чтобы принять загруженные файлы, то только пользователь, который IIS работает как будет нужно разрешение на запись в папку, так как IIS будет делать файл I/O. ваша страница ASP должна проверить размер файла и иметь некоторую форму аутентификации, чтобы предотвратить хакеров от заполнения вашего жесткого диска.
Если вы настраиваете сервер FTP или какой-либо другой способ передачи файлов, то ответ будет зависеть от выбранного метода.
Вам придется предоставить разрешения на запись, но вы можете проверить тип 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, которое можно проверить перед записью файла.
Ваш лучший способ заработать доллар, вероятно, будет использовать компонент загрузки (я использовал ASPUpload), который позволяет загружать/скачивать файлы из папки, недоступной с веб-сайта.
Вы получите несколько крючков аутентификации и не будете беспокоиться о том, что кто-то случайно просматривает папку и загружает файлы (или загружает в вашем случае), так как файлы доступны только через компонент.