![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Hellka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 2.2.2006 Репутация: нет Всего: нет |
решил организовать скачку файлов за смс.
никак не пойму алгоритм работы антилича. допустим у меня есть скрипт download.php а каждому файлу я делаю уникальную строку, например "eflkefjdifjdf46543424fef" передаю параметр скрипту download.php?key=eflkefjdifjdf46543424fef и что дальше? ну допустим по ключу я найду строку с данными файла в базе, как переадресовывать пользователя к файлу? header'ом? тогда, подозреваю, можно спалить абсолютный путь к файлу. и как сделать ссылку уникальной для каждого пользователя? как вариант думал прикреплять к уникальной строке зашифрованный id пользователя и потом проверять, а если сайт не требует регистрации? кидать что-то в куки или определять по ip? |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
обычно скрипт, который анализирует входной ключ считывает файл и отправляет через себя с помощью функции readfile() зашифровать его id вместе с ключом. а точнее просто при выдаче ключа для пользователя в БД заводить запись, где будет указываться, какой пользователь может скачать (id его учётной записи или ip), и что за файл он может скачать. плюс ещё можно указать активное время, после которого ссылка будет удалена |
|||
|
||||
Hellka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 2.2.2006 Репутация: нет Всего: нет |
например сделаю только по ip, т.е. id пользователя нет, может возникнуть вариант, что ip сменился, а доступ всё еще нужен. хотя у меня тут же идейка возникла смешивать ключ файла + IP пользователя + код, который получает пользователь при смс-оплате. т.е. даже если ip сменился, то можно по коду поймать, но и код пользователь может отдать другому пользователю. тут уже не поймаешь. |
|||
|
||||
Photon |
|
|||
![]() Злобный программер ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.2.2009 Где: Таганрог Репутация: 10 Всего: 12 |
Есть ключ, время жизни ключа - скажем один час.
При скачивании проверяем ключ, если он в порядке, то
Потому что проверять на то, чтоб мог скачать только один человек - это глупо. Человек с таким же успехом может скачанный файл отдать кому угодно. -------------------- With best regards.. |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
а как тогда делается докачка?
|
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
SneG0K,
заголовки Accept-Ranges & Range & Content-Range & Content-Lenght Это сообщение отредактировал(а) enof - 7.4.2009, 22:55 |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
Только что проверил поиск по форуму - работает. Искать по разделам пхп (ключевое слова "Докачка")
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Для этих нужд есть X-Accel-Redirect. Хотя, если у Вас ###ый хостинг без возможности самостоятельной настройки - этот вариант Вам не подойдет.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
столкнулся с этим и хочу немного развернуть ответ IZ@TOP'a.
надо использовать nginx или lighttpd в качестве фронтенда или даже основного сервера. в таком случае, если из PHP к вебсерверу будет проходить определенный заголовой(X-Accel-Redirect - nginx, X-SendFile - lighttpd), то вебсервер возьмет на себя раздачу файла. В том числе и управление докачкой. Немало прояснила статья с opennet. А в эту тему отписал потому, что хоть она и старая, но самая свежая на форуме по теме "антилича". |
|||
|
||||
AXS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 26.9.2008 Где: РК Репутация: -1 Всего: -1 |
Простой и надёжный метод в том что по запросу пользователя на скачку скрипт создаёт симлинк (название = хэш таймштампа) в определённой папке (например /downloads/) и заносит его в БД вместе со временем создания. Полученую ссылку показывает пользователю.
Потом крон раз в час (тут по вкусу) запускает скрипт, который пробегает по таблице с этими симлинками и проверяет время создания симлинка и если он старше скажем 24 часов, то удаляет симлинк и запись о нём в базе. Метод испытан и проблем не вызывал. ![]() --------------------
<><><> AXS - Live Organizer v1.0 <><><> 0_o |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
кстати, есть модуль x_sendfile и под Apache 2.x. Наверное, использование ускорения закачки без использования скоростного фронтенда(nginx, lighttpd) со своими реализациями x_sendfile, немного озадачит, но ведь работает же
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |