Как защитить музыку при потоковой передаче через тег HTML5

Вот мой сценарий: Я создаю веб-страницу для группы друзей. Они хотят передавать полные версии своих песен на сайт, но не позволяют пользователям загружать файлы. Есть ссылки на покупку музыки на iTunes и Amazon. Мое идеальное решение - использовать аудиотекст html5.

Моя проблема: Потоковая передача музыки через звуковой тег небезопасна, и очень легко поймать URL-адрес в источнике страницы, а затем просто загрузить из своего веб-браузера.

Я провел некоторое исследование в Интернете и прочитал некоторые обсуждения. Да, я знаю, что нет возможности сделать это на 100% безопасным. Но я хотел бы попытаться реализовать некоторые меры безопасности, чтобы удержать большинство людей от кражи музыки.

Итак, мой вопрос: какие меры я могу предпринять здесь, чтобы попытаться защитить аудио? Есть ли способ разрешить только страницу, которая передает музыку в нее? Таким образом, пользователи не могут просто перейти к URL-адресу музыкального файла и загрузить его? Или есть способ получить его из веб-службы?

Любая помощь очень ценится. Спасибо!

Ответ 1

Есть небольшой трюк, о котором я думаю: разрешить доступ к музыке через единовременный уникальный URL:

// Page generation
// Generate unique token and put it into database
<audio controls="controls">
  <source src="song.ogg?token=UNIQUETOKEN" type="audio/ogg" />
</audio>

// On access
- Check for corresponding UNIQUETOKEN in database
- Remove token from database
- Send audio data

Это не помешает пользователям загружать вашу песню через CURL (например), но они не смогут просмотреть страницу И перейдите к исходному файлу, чтобы загрузить песню снова.

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

Ответ 2

Я сделал это с двумя файлами .php:

Первый - это "игрок". Когда он загружается, он создает сеанс var, который второй набирает - или нет.

Второй - это "стример". Если он найдет сеанс var, он использует сообщения "частичного контента", чтобы передать песню игроку. Если сеанс var отсутствует, он ничего не делает.

Нельзя напрямую ссылаться на него без доступа к файловой системе.