Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Загрузка файлов пользователями, степень опасности

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dmaw
Отправлено: 15 Апреля, 2013 - 13:39:19
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Вопрос вот в чём, как лучше организовать загрузку файлов пользователями, любых файлов не зависимо от расширения (doc, pdf, wmv, avi, txt).

1) Создать Х-папку с htaccess запрещающим открытие папки вообще, загружать туда файлы, а отдавать их на сайте скриптом.

2) Грузить все файлы в общую uploads-папку откуда файл можно скачать по прямой ссылке, но при этом вложить в папку htaccess запрещающий выполнение каких-либо скриптов.

Какова степень опасности этих вариантов загрузки?
Есть ли какие-то ещё варианты организации загрузки файлов пользователями?
 
 Top
avtor.fox
Отправлено: 15 Апреля, 2013 - 13:46:16
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




dmaw, оба варианта имеют право на жизнь.
Но Вы подумайте, в чём будет разница например отдачи файла скриптом.
 
 Top
LIME
Отправлено: 15 Апреля, 2013 - 13:51:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




но я бы всеже отбрасывал файлы с скриптовыми расширениями
иначе могут засрать хацкеры)) попытками
ну и лишнее препятствие не лишнее
 
 Top
dmaw
Отправлено: 15 Апреля, 2013 - 13:52:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




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

Кстати, загрузка файлов у меня работает через функцию copy(); т.е. я тупо копирую пользовательский файл к себе на сервер, загрузить там можно любой вирусняк, поэтому второй вариант отдачи файлов мне кажется как-то опаснее.
 
 Top
EuGen Администратор
Отправлено: 15 Апреля, 2013 - 13:57:04
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Так ли необходима загрузка файлов (.php и им подобных)?
Вообще, размещать загруженные файлы следует в строго недоступной для веб-сервера директории а отдавать их при этом - скриптом. Более того, структура, созданная для веб-приложения, где располагаются такие файлы, должна не иметь доступа к общей файловой системе с ОС (достигается при помощи, например, chroot в *nix - ОС).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmaw
Отправлено: 15 Апреля, 2013 - 14:01:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




EuGen пишет:
Так ли необходима загрузка файлов (.php и им подобных)?

Необязательно, список из разрешённых расширений я могу составить, но учитывая, что файлы копируются через copy(), то действительное содержимое файла может отличаться от расширения. Как проверять действительно ли файл .doc содержит вордовский документ я не знаю, и таких расширений может быть десяток.
 
 Top
esterio
Отправлено: 15 Апреля, 2013 - 14:11:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Я для себя ставлю следующие цели:
1. строгая проверка разширения
2. проверка Content-Type с помощю finfo(PHP >= 5.3)
3. Имя файла генерируется скриптом
4. Папка закрита для общего доступа
5. Если картинка помогает getimagesize
6. отдача идет через скрипт(кроме картинок пересохраненных с помощю gd) не по имени и пути файла, а по его ID в таблице

Более детально смотрите здесь
http://habrahabr[dot]ru/post/44610/
 
 Top
dan9
Отправлено: 07 Декабря, 2013 - 21:13:28
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Нужна помощь специалистов
Конфиг сервера: Ubuntu Server 12.04 nginx+php-fpm
Есть сайт, работающий на WP, есть возможность загрузки файлов всем пользователям.

Реализована:
Проверка по типу и расширению
Запрещено всё кроме: JPG, GIF, PNG, TXT
Есть полный мониторинг загруженых файлов

Файлы сайта лежат тут: /home/user1/www/domen/
Загружаемые пользователями файлы лежат тут: /home/user2/www/st.domen/

Файлы отдаются по прямым ссылкам
после загрузки файла и создание темы пути не раскрываются (кроме картинок)
Файлы переименовывается md5+динамическая соль

Исполнение php скриптов невозможна по той причине что php не прописан в конфиге сабдомена.

Обращение к файлам доступна только методом GET
Расширения доступные для открытия прописано и в конфиге сервера JPG, GIF, PNG, TXT

Какова угроза взлома связанная именно с загрузкой?

(Отредактировано автором: 07 Декабря, 2013 - 21:20:14)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB