Защита от скачивания мп3 с других сайтов

jusuf

Бывший модератор
Регистрация
3 Апр 2006
Сообщения
329
Реакции
205
У меня ест сайт с мп3 музыкой , и часто к моим серверам подключаются чужие сайты , то ест ставят линьки скачки на мой сервер.
Пробовал блокировать по рефферу , но на некоторых устройствах бывает не переедается реффер или переедается не корректно .
Вопрос как лучше сделать ? Передавать методом гет или пост ключ ? или какой то временной токен генерировать ?
 
Окай, делай mp3.php, который будет отдавать файлики mp3. Дальше при входе на сайт пихаем сессию true - если при скачке она есть, отдаём файл...

Глобально можно на nginx сделать...
 
Окай, делай mp3.php, который будет отдавать файлики mp3. Дальше при входе на сайт пихаем сессию true - если при скачке она есть, отдаём файл...
Глобально можно на nginx сделать...

Подход правильный, но защита от нубов :)
Это ужасно, но все музыкальные скрипты, что я видел и так отдают на php :(
 
Вот пример конфигурации nginx для защиты от хотлинкинга. Его очень просто можно исправить для .mp3 или любого другого контента. Для просмотра ссылки Войди или Зарегистрируйся
 
Вот пример конфигурации nginx для защиты от хотлинкинга. Его очень просто можно исправить для .mp3 или любого другого контента. Для просмотра ссылки Войди или Зарегистрируйся
braindancer2 твой метод тоже проверяет по рефферу :) Я сделал по другому привязку по ип пользователя.

PHP:
//создаем ключ на главном сервере 
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
$key =  md5($ip.'key');
//ссылка получается такова вида 
//http://site.ru/file.php?q=333_333&key=6bc0b74d9a9755701cea72602dcb38a3/

//На сервере скачивания вот такая функция проверки 
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
$key = preg_replace("#/$#", "", $key);
if ($key == md5($ip.'key')){
//Одаем  песню 
}else{
//Редиректим пользователя на наш сайт где ест ссылка на скачивание песни 
}

Правда ест одна проблема засчита срабатывает на телефонах андроид в брузере хром , проверяли там запросы идут через гоогле прокси сервера
 
Ну так если ты все же решил через PHP делать, то делай через сессию. Если кто-то пытается скачать файл через твой скрипт и переменная твоя в сессии или сама сессия не валидная - редиректи его на страницу свою, где заново создашь для него сессию и переменную.

<?php session_start(); $_SESSION['myvisitor'] = true;

Не думаю, что иедя md5ить IP хороша, особенно учитывая повсеместное использование NATов у ISP.
 
Ну так если ты все же решил через PHP делать, то делай через сессию. Если кто-то пытается скачать файл через твой скрипт и переменная твоя в сессии или сама сессия не валидная - редиректи его на страницу свою, где заново создашь для него сессию и переменную.

<?php session_start(); $_SESSION['myvisitor'] = true;

Не думаю, что иедя md5ить IP хороша, особенно учитывая повсеместное использование NATов у ISP.

вопрос а сессия передаетса на субдомен ?
 
ID сессии хранится либо в урле параметром (что не правильно) или в куки. Куки привязываются к домену и пути. Я думаю поскольку в php.ini у тебя можно задать основной домен как куки домен для сессии - проблем быть не должно. В любом случае нужно протестировать.

session.cookie_domain = 'твойдомен.тлд'

^^ в php.ini или в .htaccess или ini_set()

Вот здесь опять же обсуждение этой темы: Для просмотра ссылки Войди или Зарегистрируйся
 
Назад
Сверху