Текущий архив: 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.54 MB
Время: 0.046 c