![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| EugenyPavlenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Добрый день.
Вопросов 2: С помощью ПХП отгружаются на сервер картинки (гиф, жпг). Я где-то читал, что якобы в отгружаемую картинку, предварительно (перед аплоад), можно вставить вредоносный код, который сделает бо бо серверу. 1) Что это за код и как обезопасить сервер? (я так понимаю после отгрузки такой картинки, просто набирается ее линк в бровзере и оля ля ля серверу кранты (зависит от кода, конечно)...) Далее, на моем сайте должна быть возможность обмена файлами... т.е ты заходишь, отгружаешь файл (рар/зип-архив), выбираешь ник, кому посылаешь ну и тому высвечивается мол такой-то посылает вам файл. 2) Как сделать, чтобы загрузить файл мог только тот юзер, которому этот файл посылают? (у Юзеров есть айдишники и все дела) Просто так получается, что сейчас загрузить файл может КАЖДЫЙ, кто знает путь к файлу... а надо чтобы ТОЛЬКО тот, кому этот файл предназначен. Заранее Спасибо. Это сообщение отредактировал(а) Dzuchara - 10.10.2007, 17:18 |
|||
|
||||
| Pokoinik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 17.3.2007 Где: /dev/null Репутация: 2 Всего: 3 |
Ну вообще ибить сервак гифкой и жпего невозможно,
хотя в принципе через возможные уязвимости можно убить систему пользователя скачавшего имидж, но это встречается редко... По второму вопросу: можно хранить имидж в бд и давать право скачивать только юзеру которомцу имидж предназначен... -------------------- ICQ: 490-993 Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!! Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают. Делай или не делай! Никаких попробую! Йода (Yoda), мастер-джедай |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
может, так:
закрываешь в апаче доступ в директорию с файлами, а в PHP пишешь: <? fopen(ля-ля, новый картинк); fprintf(ляля, implode("secret_dir/file.jpg"));; fclose(ляля); ?> далее переаддресовываем на новый картинк позднее новый картинк стираем. |
|||
|
||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: -1 Всего: -1 |
ИМХО лычший вариант вариант в самом деле картинки в БД т.к. остается возможность обращения к катинке по адрессу http://mysait/img/gtr.gif.
да и вообще туту дело случия если злоумышлиник-изващенец захочет сделать "бо-бо" собственно он и загрузит картинку с вредоносным кодом на твой сервак и в дальнейшем сам же ее выполнит. Опять же таки вариант сканить скриптом содержание картинки на наличие тегов типа <?php, <?, <script> и т.д.... |
|||
|
||||
| EugenyPavlenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Выводы:
Pokoinik, по поводу уязвимости прав, т.к если бы это было бы так легко то уже бы много сайтов похакали бы. А второй вопрос касается не картинок, а Архивов! Соответветственно архивы могут быть большого размера (например 10 Мб) и по-этому, я думаю, что лучше не хранить их в БД. Можно развить идею comcon1, но возникают вопросы: 1) Как закрыть доступ к директорию? (Deny From All)? 2) Если я закрою директорию, сможет ли мой собсвенный пхп-скрипт сохранять туда upload-файлы? 3) Код Пхп совершенно не понятен мне...
Что он делает? Выводит содержимое файла? причем тут implode? |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: нет Всего: 26 |
1. Насчет кода в гифе - старый "баг", залатанная дыра, наверно, везде уже (это надо, чтобы mime-тип картинки не был прописан, как картинка в настройках веб-сервера).
2. Насчет хранения картинок в базе - не надо, со временем база раздуется и будет все тормозить жутко. 3. По поводу загрузки файла только нужным юзером: - сделать таблицу связи "файл-юзер" - проверять по сессии и если файл присутствует в таблице связи для этого юзера ..... - ..... отдавать его не прямым линком, а download-хэдерами. |
|||
|
||||
| EugenyPavlenko |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
dsCode,
по поводу этого не знаешь?
Почему не прямым и как выглядят эти download-хэдеры? |
||||
|
|||||
| chiffa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 734 Регистрация: 11.11.2003 Репутация: -1 Всего: -1 |
а чем не утраивает мой вариант скана файлов, хотя если оооочень большие то будет подтормаживать...
|
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: нет Всего: 26 |
Dzuchara, если "Денай Фром Ол" будет стоять - вообще нельзя будет взять этот файл напрямую, а вот через хэдер - пожалуйста. Да, это, на мой взгляд, самый правильный способ (с учетом пунктов из предыдущего моего поста):
- поставить deny from all - отдавать хэдерами (никто не узнает реальный путь, даже сам юзер, которому принадлежит файл)
|
|||
|
||||
| EugenyPavlenko |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
chiffa,
В ходе обсуждения этой темы выяснилось, что в наше время идея вшивания кода в картинку - не актуальна. Про это можно забыть. dsCode, Я подумал что лучше сделать так: после аплоада файла дописывать в самое начало - в название файла Айди юзера, которому он предназначается... а при скачивании просто парсить название файла и смотреть чтобы Айди совпадали... Это очень просто. Крайне приблизительный код:
На всякий случай пастую немного доработанную ф-цию закачки:
Может быть кто-нить не знает: До вызова этой ф-ции не должно быть никакого вывода! (output) dsCode, спасибо за очень компетентный ответ. Все проверил - все работает! Остальным учасникам темы также огромное спасибо за помощь! Это сообщение отредактировал(а) Dzuchara - 11.10.2007, 23:11 |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |