Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 23:21   #1
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию Загрузка файлов на сервер. (безапасность) Посоветуйте

Имеется ресурс. На нём пользователи могут загружать файлы. Как это всё организовать безапасно?

Я буду использовать белые списки типов файлов (от mimetype думаю отказатся). Разрешено: рисунки, архивы, доки.

Допустим я проверяю по типу файла закачиваю на сервер. Файлы эти только потом отдаются пользователю, плюс картинки могут использоваться при оформлении материала. Какие тут могут быть уязвимости или этого будет достаточно?
dr.Chas вне форума Ответить с цитированием
Старый 26.12.2010, 09:00   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

В .htaccess пропишите:
Код:
register_globals = off;
В настройках сервера:
Код:
allow_url_fopen = off;
При работе с файлами используем:
Код:
is_uploaded_file()
move_uploaded_file()
Виталий Желтяков вне форума Ответить с цитированием
Старый 26.12.2010, 14:56   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Ну почти всё также, только это is_uploaded_file() не использовал, щас допишу. Ещё есть нюансы какие то?
dr.Chas вне форума Ответить с цитированием
Старый 26.12.2010, 15:14   #4
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
По умолчанию

dr.Chas да вроде уже ответили на твой вопрос!
Проверяешь тип файла, его размер (Кб), размер картинок!
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 26.12.2010, 15:41   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Для всех типов файлов:
- принудительное переименование и присваивание типа из "белого списка".
- запрет на прямой доступ и выполнение скриптов для директории с загруженными файлами.
- выдача файлов (неважно - картинки в текст страницы,или файлы для download) ТОЛЬКО при помощи скрипта - никакого прямого доступа к файлам.

Дополнительно для изображений:
- проверка типа файла при помощи getimagesize() .
- крайне желательно выполнять обязательный ресайз - хоть даже и сохраняя при этом исходные размеры изображения - поможет в борьбе с возможными шелл-кодами, вирусами и JS.

И вообще - в вопросах аплоада пользовательских файлов всегда лучше перебдеть...)))
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка файлов на сервер Dimarik PHP 6 16.12.2010 10:46
Загрузка файла на сервер denisov JavaScript, Ajax 0 31.05.2010 19:25
Загрузка файлов через WEB форму на сервер Sergey2 PHP 17 26.07.2009 15:53
Загрузка файла на сервер Pum Работа с сетью в Delphi 11 14.03.2009 08:58