Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
просто так   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.042 c
15-1187333215
самовар
2007-08-17 10:46
2007.09.16
Посоветуйте файловый хостинг


2-1187868785
Галинка
2007-08-23 15:33
2007.09.16
Панель инструментов из DLL


15-1187576510
>>DEATH<<
2007-08-20 06:21
2007.09.16
распознование текста


2-1187726666
Kiber1
2007-08-22 00:04
2007.09.16
Debugger Fault Notification


2-1187347440
new_chel
2007-08-17 14:44
2007.09.16
Дисконнект





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский