Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

как запретить несанкционированное скачивание?   Найти похожие ветки 

 
просто так   (2007-08-14 14:58) [0]

Допустим, у меня есть сайт, в сайте находятся файлы в архиве (программы, музыка - неважно). Все это распространяется бесплатно, только с одним условием - надо зарегистрироваться на сайте, войти и скачать нужный файл.
Но, если один человек скачал этот файл, то он уже знает прямую ссылку на файл, может дать ссылку другому, и он скачает этот файл без регистрации. Вот этот вариант меня не устраивает.. Как сделать так, чтобы второй человек не мог скачивать файлы без регистрации?

P.S. Я знаю, что распространение чужих программ, музыки - незаконно, что есть поисковики вроде гугля, яндекса, и вообще, что надо учить мануал, но я спрашиваю у вас.
Спасибо большое ;)


 
Ega23 ©   (2007-08-14 15:07) [1]

Генерить ссылку на файл каждый раз новую. Чтобы человек каждый раз регистрировался... :)


 
Reindeer Moss Eater ©   (2007-08-14 15:07) [2]

то он уже знает прямую ссылку на файл

Значит надо сделать так, чтобы прямой ссылки на файл не было.


 
ЗапомниСынок   (2007-08-14 15:08) [3]

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


 
просто так   (2007-08-14 15:11) [4]


> Reindeer Moss Eater ©   (14.08.07 15:07) [2]
> то он уже знает прямую ссылку на файлЗначит надо сделать
> так, чтобы прямой ссылки на файл не было.

Вот-вот, а как это сделать?


> ЗапомниСынок   (14.08.07 15:08) [3]

Ну если второй человек знает все реквизиты первого, то я не против, я хочу запретить второму, если он знает только ссылку, но не другие данные первого.


 
Котик Б   (2007-08-14 15:13) [5]

Проще простого !!!
Персонифицированная ссылка с временем жизни :)


 
просто так   (2007-08-14 15:13) [6]

Ну скажем, я сейчас качаю песню группы "Массква". Адрес в Опере:
http://m3-1.base.zaycev.net/363e88360c4dd0fa3cab4c551e111d13/107/10767/masskva_-_nu_nakonec-to.mp3
Это ведь не прямая ссылка, так?


 
Reindeer Moss Eater ©   (2007-08-14 15:13) [7]

Вот-вот, а как это сделать?
А зачем так делать?
Первый скачавший может отдать как ссылку на файл так и свой аккаунт.
И 100 человек скачают твой файл без регистрации.


 
просто так   (2007-08-14 15:16) [8]


> И 100 человек скачают твой файл без регистрации.

Ну, допустим... что один юзер не имеет права скачивать файл больше 10-ти раз :)

Если второй человек знает все реквизиты первого, то я не против, я хочу запретить второму, если он знает только ссылку, но не другие данные первого.


 
Mystic ©   (2007-08-14 15:17) [9]

> просто так   (14.08.07 15:13) [6]

Я не знаю конфигурации твоего сервера, чтобы сказать прямая это ссылка или нет. Может у тебя в Appache повешен обработчик на mp3 файлв, который возвращает содержимое, при этом проверяет cookies, сессию и т. п.?


 
просто так   (2007-08-14 15:20) [10]

Тааак, луч света... :)
> просто так   (14.08.07 15:13) [6]
это не мой сервер, я просто оттуда скачал песню.

Значит, я должен вешать на Апач обработчик mp3 ?


 
Reindeer Moss Eater ©   (2007-08-14 15:21) [11]

это не мой сервер,

не твой сервер, не твои файлы....
расслабься уже.


 
просто так   (2007-08-14 15:21) [12]

будем копать  в направлении [9] :)
Спасибо, попробуем.


 
Reindeer Moss Eater ©   (2007-08-14 15:23) [13]

Ну, допустим... что один юзер не имеет права скачивать файл больше 10-ти раз :)

А как ты это будешь считать?
А если я никому ничего не давал, но качаю в 11 потоков?
Или у меня мопед постоянно рвет коннект?


 
Плохиш ©   (2007-08-14 15:24) [14]


> как запретить несанкционированное скачивание?

Написать скрипт/cgi-приложение, которое отсылает файлы после успешных проверок. Все файлы хранить в недоступном извне месте.


 
просто так   (2007-08-14 15:25) [15]

мдааа.... Сложновато получается..
И какое же решение предлагаете?


 
Reindeer Moss Eater ©   (2007-08-14 15:27) [16]

И какое же решение предлагаете?

не зная сути проблемы предлагать дать решение?
чума!
:)


 
просто так   (2007-08-14 15:27) [17]


> Плохиш ©   (14.08.07 15:24) [14]
> > как запретить несанкционированное скачивание?Написать
> скрипт/cgi-приложение, которое отсылает файлы после успешных
> проверок. Все файлы хранить в недоступном извне месте.

То есть, скрипт копирует файл в какую-то общедоступную папку, а через неделю удаляет?


 
partizan   (2007-08-14 15:28) [18]


> Написать скрипт/cgi-приложение, которое отсылает файлы после
> успешных проверок. Все файлы хранить в недоступном извне
> месте.


Если файлы небольшого размера.

Если большие файлы - симлинк с временем жизни


 
просто так   (2007-08-14 15:28) [19]


> Reindeer Moss Eater ©   (14.08.07 15:27) [16]

я в [0] написал


 
DrPass ©   (2007-08-14 15:28) [20]


> Как сделать так, чтобы второй человек не мог скачивать файлы
> без регистрации?

Это творческая задача. Я бы решил ее, например, с помощью сессий. Т.е. пользователь регистрируется, сервер создает сессию, в которой он работает. И при обращении к файлу проверяет ID сессии. Если он задан, и сессия действительно принадлежит зарегистрированному пользователю, то скачивание разрешается. Если нет, то не разрешается. Собссно, судя по http: //m3-1.base.zaycev.net/363e88360c4dd0fa3cab4c551e111d13/107/10767/masskva_-_nu_nakonec-to.mp3, это и есть ID сессии


 
partizan   (2007-08-14 15:29) [21]

на чем вообще сайт написан?


 
Плохиш ©   (2007-08-14 15:30) [22]


> То есть, скрипт копирует файл в какую-то общедоступную папку,
>  а через неделю удаляет?

Один из вариантов.


 
просто так   (2007-08-14 15:31) [23]

на php.
Спасибо всем большое.


 
Reindeer Moss Eater ©   (2007-08-14 15:31) [24]

я в [0] написал

Это не суть проблемы, а просто извращенное желание сделать нечто, что по твоему решит твою настоящую проблему.


 
partizan   (2007-08-14 15:33) [25]


> То есть, скрипт копирует файл в какую-то общедоступную папку,
>  а через неделю удаляет?


не сам файл, а симлинк


 
Плохиш ©   (2007-08-14 15:35) [26]


> partizan   (14.08.07 15:28) [18]

Честно говоря, не понимаю разницы в том как будет отправлена куча байтов клиенту, которую сервер возмёт из файла на диске или получит в качестве ответа от скрипта. И как на это влияет размер.


 
partizan   (2007-08-14 15:37) [27]

На размер отправки никак, но если это фильм - зачем его копировать в разные места на сервере?


 
Плохиш ©   (2007-08-14 15:46) [28]


> partizan   (14.08.07 15:37) [27]
> На размер отправки никак, но если это фильм - зачем его
> копировать в разные места на сервере?

Когда я предлагал что-то куда-то копировать?


 
partizan   (2007-08-14 15:52) [29]


> Написать скрипт/cgi-приложение, которое отсылает файлы после
> успешных проверок.


Отдаст ли апач этот фал сам, или запустит php-скрипт, который будет его читать и отдавать - разница в скорости и память, которая выделится для работы скрипта.

Кроме для пхп скриптов обычно установлено ограничение на время выполнения и размер используемой памяти.


 
просто так   (2007-08-14 15:53) [30]

Тааакк, первые грабли :)
Как создавать симлинки?


 
b z   (2007-08-14 15:56) [31]

> Как сделать так, чтобы второй человек не мог скачивать файлы
> без регистрации?
положить их в защищеное, какой-либо серверной аутентификацией, место


 
partizan   (2007-08-14 15:56) [32]


> Как создавать симлинки?


А вот за этим - в гугл :)


 
просто так   (2007-08-14 16:02) [33]


> ln -s /dev/ttyS0 /dev/ttyS1 Делает линк с /dev/ttyS0 как
> файл с именем ttyS1

а симлинк в php создавать можно? или только самому надо делать, вручную?


 
Kerk ©   (2007-08-14 16:06) [34]

Обычно дают уникальную ссылку с ограниченым временем жизни.
Еще можно сделать ограничение по IP.. давать качать тока с одного.


 
partizan   (2007-08-14 16:07) [35]

Из пхп можно выполнить системные команды:

<?php echo `ln -s /path/to/my/gallery gallery`; ?>

Именно такие кавычки: `

Но это может быть запрещено хостингом, тогда честно говоря не знаю как быть. Лучше поискать на форумах по пхп (http://phpclub.ru/talk/)


 
partizan   (2007-08-14 16:09) [36]


> а симлинк в php создавать можно? или только самому надо
> делать, вручную?
>


int symlink ( string target, string link)

symlink() creates a symbolic link from the existing target with the specified name link.

See also link() to create hard links, and readlink() along with linkinfo().

Note: This function is not implemented on Windows platforms.


 
Eraser ©   (2007-08-14 16:11) [37]

если пользователь зарегистрирован, то его ID храниться в базе/сессии/кукисах, соответственно в любой момент времени можно проверить, зарегитсрирован ли он.

$file_name = "file.dat"; // Имя файла, который увидит юзер.
if (is_user_registered(user_id))
{
 header("Content-Type: application/force-downloadn");
 header("Content-Disposition: attachment; filename=$file_name");

 if (is_file($temp_file_name))
 {
   echo file_get_contents($temp_file_name);
   unlink($temp_file_name);
 }
}

как то так...


 
partizan   (2007-08-14 16:17) [38]


> как то так...


См. [14], [29]


 
partizan   (2007-08-14 16:18) [39]

echo file_get_contents($temp_file_name);

Подходит только для небольших фалов


 
Eraser ©   (2007-08-14 16:22) [40]


> partizan   (14.08.07 16:18) [39]

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



Страницы: 1 2 3 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.031 c
15-1187471647
timself
2007-08-19 01:14
2007.09.16
Помогите подобрать компонент… RTF-->HTML


2-1187766089
stanislav
2007-08-22 11:01
2007.09.16
Integer to widechar


6-1169573613
i-am-vladko
2007-01-23 20:33
2007.09.16
Indy


5-1160204158
xolin
2006-10-07 10:55
2007.09.16
Как заблокировать CloseUp по LButtonClick для ComboBox?


2-1187803865
nord489
2007-08-22 21:31
2007.09.16
Переменные