JPlayer Stream MP3, но предотвращает загрузку и hotlinking - программирование
Подтвердить что ты не робот

JPlayer Stream MP3, но предотвращает загрузку и hotlinking

Я создаю сайт, похожий на thefuture.fm. Ди-джеи могут загружать файлы MP3 и устанавливать, может ли файл быть потоковым или потоковым и загружен.

Посетителям сайта не нужно входить в систему, чтобы слушать музыку. Они должны иметь возможность транслировать/загружать эти MP3-композиции в зависимости от настроек пользователя.

Я использую jPlayer для воспроизведения песен. Я искал по всей сети, но не могу найти решение. Есть ли у jPlayer какие-либо средства, такие как предотвращение загрузки файлов MP3? Или я могу предотвратить это?

4b9b3361

Ответ 1

На самом деле невозможно предотвратить загрузку. Вы можете сделать его труднее для кого-то, но ему все равно нужно загрузить все данные, чтобы услышать песню. Поэтому, даже если вы используете какое-то шифрование для отправки данных на флеш-плеер, который вы сами записываете, плеер должен будет расшифровать его и воспроизвести аудио. И так как вы можете декомпилировать flash, вам не сложно будет найти алгоритм. Он мог также просто записывать музыку снова, когда играл в нее (подобно первым инструментам для дешифрования DVD, которые просто сделали снимок экрана 30 раз/сек, чтобы пройти миллионные измерения безопасности)

Таким образом, цель состоит в том, чтобы сделать это сложнее, а не невозможно.

Лично я хотел бы использовать временные доступные ссылки в сочетании с файлом cookie, поэтому я все еще могу использовать jplayer и не нужно изобретать колесо. Также используйте некоторые обфускации, чтобы затруднить чтение URL-адреса.

Когда кто-то запрашивает основной URL-адрес (где вы показываете плеер) генерируете уникальный ключ и сохраняете его в файле cookie. Уникальный ключ должен ссылаться на IP-адрес и запрашивать время, сохраненное в сеансе.

Теперь создайте ссылку на музыкальный файл, такой как playfile.php? file = music.mp3 или что-то еще. Просто убедитесь, что PHP будет обрабатывать запрос файла. Если вы обфускаете эту ссылку, будет немного сложнее ее найти.

В playfile.php проверьте уникальный код в файле cookie и проверьте, соответствует ли он IP-адресу в сеансе, а время запроса меньше EG за 15 секунд (дольше и музыка не будет играть в любом случае при медленном подключении к Интернету), Если это так, перелейте файл. Если это не так, заблокируйте его.

Теперь, если кто-то напишет программу / script, чтобы загрузить музыку, он может. Но если у кого-то есть знания и время для этого, ничто не остановит его от его загрузки.

Это предотвратит загрузку обычного пользователя.

Ответ 2

Предотвращение хотлинкинга немного проще, так как в общем случае у вас будет строка реферера для проверки. Если это присутствует, вы будете знать, что не будете обслуживать контент. Здесь - пример кода.

Предотвращение загрузки с другой стороны намного сложнее - лучший подход для приложения Flash для дешифрования данных в реальном времени - если вы используете простую схему шифрования, большинство клиентских устройств должно быть достаточно быстрым. Я не мог найти многого для этого в Интернете, поэтому я задаюсь вопросом, нужно ли вам самому сделать разработку Flash/Flex самостоятельно: загрузите данные MP3 в куски, примените процедуры дешифрования из библиотеки и отправьте их в какой-то MP3 буфер декодирования. Я подозреваю, что пароль будет жестко закодирован.

Приложение: Я обнаружил, что в более поздних версиях Flash вы можете воспроизводить динамически генерируемые звуки из буфера (см. здесь). Итак, если вы готовы застрять в разработке Flash/Flex, то это решение видно. Я не мог найти ничего доступного для низкоуровневых MP3-подпрограмм, но не забывайте, что файлы не должны быть MP3, передаваемые с вашего сервера, - конвертируйте их в нужное вам приложение.

Ответ 3

То, что вы ищете, не может быть достигнуто с помощью решения JavaScript. Если вы хотите, чтобы javascript воспроизводил что-то, он должен загрузить его, и для его загрузки JavaScript нуждается в URL-адресе.

Наиболее распространенным способом решения этой проблемы является использование Adobe Flash и создание в нем игрока. Вы можете сделать контент вашего проигрывателя (mp3 в вашем случае) без явного отображения фактического местоположения данных для пользователя.

Ответ 4

Поместите файл в место, которое недоступно в браузере, и используйте PHP, чтобы выпустить их в виде серии кусков с помощью HTTP/1.1 206 Partial Content. Затем используйте метод this, чтобы отредактировать контекстное меню, чтобы добавить/удалить "сохранить как".

Используйте сеанс var, чтобы устранить прямую ссылку.