Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как работает антилич? алгоритм 
:(
    Опции темы
Hellka
Дата 6.4.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.2.2006

Репутация: нет
Всего: нет



решил организовать скачку файлов за смс.
никак не пойму алгоритм работы антилича.
допустим у меня есть скрипт download.php
а каждому файлу я делаю уникальную строку, например "eflkefjdifjdf46543424fef"
передаю параметр скрипту download.php?key=eflkefjdifjdf46543424fef
и что дальше? ну допустим по ключу я найду строку с данными файла в базе, как переадресовывать пользователя к файлу? header'ом? тогда, подозреваю, можно спалить абсолютный путь к файлу.

и как сделать ссылку уникальной для каждого пользователя? как вариант думал прикреплять к уникальной строке зашифрованный id пользователя и потом проверять, а если сайт не требует регистрации? кидать что-то в куки или определять по ip?
PM MAIL   Вверх
bars80080
Дата 7.4.2009, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Hellka @  6.4.2009,  20:37 Найти цитируемый пост)
как переадресовывать пользователя к файлу?

обычно скрипт, который анализирует входной ключ считывает файл и отправляет через себя с помощью функции readfile()


Цитата(Hellka @  6.4.2009,  20:37 Найти цитируемый пост)
как сделать ссылку уникальной для каждого пользователя?

зашифровать его id вместе с ключом. а точнее просто при выдаче ключа для пользователя в БД заводить запись, где будет указываться, какой пользователь может скачать (id его учётной записи или ip), и что за файл он может скачать. плюс ещё можно указать активное время, после которого ссылка будет удалена
PM MAIL WWW   Вверх
Hellka
Дата 7.4.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.2.2006

Репутация: нет
Всего: нет



Цитата(bars80080 @ 7.4.2009,  00:44)
зашифровать его id вместе с ключом. а точнее просто при выдаче ключа для пользователя в БД заводить запись, где будет указываться, какой пользователь может скачать (id его учётной записи или ip), и что за файл он может скачать. плюс ещё можно указать активное время, после которого ссылка будет удалена

например сделаю только по ip, т.е. id пользователя нет, может возникнуть вариант, что ip сменился, а доступ всё еще нужен.

хотя у меня тут же идейка возникла смешивать ключ файла + IP пользователя + код, который получает пользователь при смс-оплате. т.е. даже если ip сменился, то можно по коду поймать, но и код пользователь может отдать другому пользователю. тут уже не поймаешь.
PM MAIL   Вверх
Photon
Дата 7.4.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Есть ключ, время жизни ключа - скажем один час.
При скачивании проверяем ключ, если он в порядке, то 

Код

header('Content-Type: нужный_тип_файла');
echo file_get_content('путь_и_имя_файла');


Потому что проверять на то, чтоб мог скачать только один человек - это глупо. Человек с таким же успехом может скачанный файл отдать кому угодно.


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
SneG0K
Дата 7.4.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



а как тогда делается докачка?
PM WWW Skype   Вверх
enof
Дата 7.4.2009, 22:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



SneG0K
заголовки Accept-Ranges & Range & Content-Range & Content-Lenght

Это сообщение отредактировал(а) enof - 7.4.2009, 22:55
PM MAIL ICQ Skype   Вверх
awers
Дата 8.4.2009, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Только что проверил поиск по форуму - работает. Искать по разделам пхп (ключевое слова "Докачка")
PM MAIL WWW ICQ Skype   Вверх
IZ@TOP
Дата 8.4.2009, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Для этих нужд есть X-Accel-Redirect. Хотя, если у Вас ###ый хостинг без возможности самостоятельной настройки - этот вариант Вам не подойдет.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
skyboy
Дата 9.7.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



столкнулся с этим и хочу немного развернуть ответ IZ@TOP'a.
надо использовать nginx или lighttpd в качестве фронтенда или даже основного сервера. 
в таком случае, если из PHP к вебсерверу будет проходить определенный заголовой(X-Accel-Redirect - nginx, X-SendFile - lighttpd), то вебсервер возьмет на себя раздачу файла. В том числе и управление докачкой.
Немало прояснила статья с opennet. А в эту тему отписал потому, что хоть она и старая, но самая свежая на форуме по теме "антилича". 
PM MAIL   Вверх
AXS
Дата 9.7.2010, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: -1
Всего: -1



Простой и надёжный метод в том что по запросу пользователя на скачку скрипт создаёт симлинк (название = хэш таймштампа) в определённой папке (например /downloads/) и заносит его в БД вместе со временем создания. Полученую ссылку показывает пользователю.
Потом крон раз в час (тут по вкусу) запускает скрипт, который пробегает по таблице с этими симлинками и проверяет время создания симлинка и если он старше скажем 24 часов, то удаляет симлинк и запись о нём в базе.

Метод испытан и проблем не вызывал. smile
--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
skyboy
Дата 11.7.2010, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



кстати, есть модуль x_sendfile и под Apache 2.x. Наверное, использование ускорения закачки без использования скоростного фронтенда(nginx, lighttpd) со своими реализациями x_sendfile, немного озадачит, но ведь работает же  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1333 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.