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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скачка mp3 файлов с сервера. Как защититься? :) 
:(
    Опции темы
Mystery
Дата 29.5.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть музыкальный сайт.

Пользователь с положительным балансом на счету может скачивать мп3 файлы, ему предоставляется уникальная ссылка.

Мне важно чтоб по ссылке можно было скачать файл только один раз. То есть пользователь поставил файл в менеджер закачек и скачал только часть, то ссылка должна работать один день, но если файл уже раз скачался полностью то ссылка перестаёт быть рабочей.
В общем я это так представляю, если у кого-то есть другие варианты как организовать защищенную скачку файлов с моего сервера то буду благодарен. Ну и интересует как реализовать мой вариант. 

Thnk U 
PM MAIL   Вверх
Mal Hack
Дата 29.5.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



PM ICQ   Вверх
Mystery
Дата 29.5.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Мы в таблицу сессий заносим какой-ть любой идентификатор аля md5, время через которое он умрет и ID файла.

Я так примерно и представлял, но выходит что пока идентификатор не умрёт, файл можно скачать сколько угодно раз..
Если же поставить какой нить счетчик в скрипте и если к сылке обращаются больше одного раза то она дохнет, то выходит что из менеджера закачек уже нельзя будет продолжить скачивать файл если половину уже скачал, а вторую решил скачать вечером.. 
PM MAIL   Вверх
Mal Hack
Дата 29.5.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



100% идеального решения тут не будет. В принципе можно отследить по потокам, но как это делать я не знаю. И ваять тут уже надо с http сервером. 
PM ICQ   Вверх
patt
Дата 11.6.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



На проффессиональных интернет магазинах делаеться так: создаёться уникальная ссылка со сроком жизни пару дней, длинна уникальной части ссылки 15-20 символов, тоесть подобрать её невозможно.

Сам кагда то интересовался как определить скачался ли файл полностью, ничего не нашёл, если тебе повезёт большае незабудь поделиться  smile  
PM MAIL ICQ Skype GTalk   Вверх
-=Ustas=-
Дата 13.6.2006, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(patt @  11.6.2006,  14:14 Найти цитируемый пост)
Сам кагда то интересовался как определить скачался ли файл полностью

Здесь уже надо работать с заголовками, и принятые чанки писать в БД. Другого способа нет и не будет. 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
szz
Дата 3.7.2006, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

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



Цитата

На проффессиональных интернет магазинах делаеться так: создаёться уникальная ссылка со сроком жизни пару дней, длинна уникальной части ссылки 15-20 символов, тоесть подобрать её невозможно.

   Да, а толку? В течение 2-х дней можно качать этот файл? Как сделать так, чтоб вообще ни раз скачать нельз было?

Лучше всего - делать это через флеш. Никто ссылку не увидит (ее тайком флеш закачивает) и все довольны. Можно, конечно, ссылку отстрелить если мониторить все входы-выходы по 80 порту, но мало кто такое делать будет.

 


--------------------
PM   Вверх
sergejzr
Дата 3.7.2006, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Я бы написал сервлет с докачкой на пару строк...

Добавлено @ 20:28 
Хотя... можно поэксперементировать с докачкой и на пхп... 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 3.7.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Вот, собрал ветку отсюда: http://forum.ru-board.com/topic.cgi?forum=31&topic=2045
Код





workFileSize=filesize($file);
if (isset($server["HTTP_RANGE"])) {
 
/*
Смотрим в БД, свежая ли закачка. 
Например если запись в БД существует.
Если нет, то die();
*/
if(!is_in_DB(file)) die();

preg_match ("/bytes=(\d+)-/", $server["HTTP_RANGE"], $m);
$contentSize = $workFileSize - intval($m[1]);
$p1 = $workFileSize-$contentSize;
$p2 = $workFileSize-1;
$p3 = $workFileSize;
$offset=$m[1];
header ("HTTP/1.1 206 Partial Content");
header ("Date: " . getGMTDateTime ());
header ("X-Powered-By: PHP/" . phpversion());
header ("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
header ("Cache-Control: None");
header ("Pragma: no-cache");
header ("Accept-Ranges: bytes");
header ("Content-Disposition: inline; filename=\"" . $workFileName . "\"");
header ("Content-Type: application/octet-stream");
header ("Content-Range: bytes " . $p1 . "-" . $p2 . "/" . $p3);
header ("Content-Length: " . $contentSize);
header ("Proxy-Connection: close");

}else
{
/*
Здесь надо доп. проверить, скачивался ли файл уже хоть раз.
Файл начинает скачиваться.
*/
insert_in_DB($file);
header ("HTTP/1.1 200 OK");
header ("Date: " . getGMTDateTime ());
header ("X-Powered-By: PHP/" . phpversion());
header ("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
header ("Cache-Control: None");
header ("Pragma: no-cache");
header ("Accept-Ranges: bytes");
header ("Content-Disposition: inline; filename=\"" . $workFileName . "\"");
header ("Content-Type: application/octet-stream");
header ("Content-Length: " . $contentSize);
header ("Age: 0");
header ("Proxy-Connection: close");
$offset=0;
}

$fd = fopen ($file, "r");
fseek ($fd, $offset);
$contents = fread ($fd, filesize($file)-$offset); 
print $contents;
/*
Помечаем как скачанный (например убираем из БД)
*/
deleteFromDB($file);

 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
dm9
Дата 4.7.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


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

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



sergej.z, это всё хорошо... но может быть просто так: я (в Опере) нажимаю на ссылку, она начинает закачку и параллельно (!) предлагает выбрать файл. Выбираю. Промахиваюсь по кнопке "Open", нажимаю "Cancel". И всё — нет файла. А деньги проплачены. Так что эти проверки... лучше просто дать на два дня, и пусть хоть обкачается. Можно по IP ограничивать. Начал качать с одного IP — будь добр с него докачать. Ну или 2-3 IP позволить... на всякий случай. Просто недовольный клиент — это гораздо хуже, чем лишнее незаконное скачивание. ИМХО, конечно.
 
PM MAIL ICQ   Вверх
szz
Дата 4.7.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

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



Говорю вам: Flash fileReferenсe вас спасет. 


--------------------
PM   Вверх
sergejzr
Дата 4.7.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Цитата(dm9 @  4.7.2006,  10:40 Найти цитируемый пост)
sergej.z, это всё хорошо... но может быть просто так: я (в Опере) нажимаю на ссылку, она начинает закачку и параллельно (!) предлагает выбрать файл. Выбираю. Промахиваюсь по кнопке "Open", нажимаю "Cancel". И всё — нет файла. А деньги проплачены. Так что эти проверки... лучше просто дать на два дня, и пусть хоть обкачается. Можно по IP ограничивать. Начал качать с одного IP — будь добр с него докачать. Ну или 2-3 IP позволить... на всякий случай. Просто недовольный клиент — это гораздо хуже, чем лишнее незаконное скачивание. ИМХО, конечно.

Согласен, но тут можно регулировать как угодно. ставить на количество раз, временный промежуток и проч. Но таким образом можно точно сказать, когда чел всё таки скачал файл и после этого затирать запись.

А вообще, вопрос был "как", а не "зачем".

С тобой полностью согласен насчёт  
Цитата

Просто недовольный клиент — это гораздо хуже, чем лишнее незаконное скачивание. 
 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
-=Ustas=-
Дата 4.7.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(szz @  4.7.2006,  12:42 Найти цитируемый пост)
Говорю вам: Flash fileReferenсe вас спасет.

Это что такое? 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Alex13
Дата 4.3.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сдается мне, если поэксперементировать с этим скриптом, то все можно без особых проблем сделать
http://xpoint.ru/forums/programming/PHP/thread/20714.xhtml


--------------------
Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий.
Антисоциальный блог.
PM WWW ICQ Jabber   Вверх
BuShaRt
Дата 30.3.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



szz
Цитата

Говорю вам: Flash fileReferenсe вас спасет. 


Во первых, то что я не узнаю ссылку - миф подобный тому, что я ее не узнаю, если скрыть исходный HTML-код страницы...

А во вторых, выше написали же.
Цитата

Просто недовольный клиент — это гораздо хуже, чем лишнее незаконное скачивание. 

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

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


 




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


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

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