Как обезопасить музыку при потоковой передаче через аудиотег HTML5 - PullRequest
11 голосов
/ 16 января 2012

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

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

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

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

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

Ответы [ 2 ]

8 голосов
/ 16 января 2012

Есть одна хитрость, о которой я думаю: разрешить доступ к музыке через одноразовый уникальный 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 (например), но они не смогут просматривать страницу И перемещаться по источнику, чтобы загрузить песню снова.

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

0 голосов
/ 14 февраля 2013

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

Первый - это «player».Когда он загружается, он создает сеансовую переменную, которую второй подхватывает - или нет.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...