Безопасность тегов в html5

Длинная версия:

Я использую html5 audio tag для воспроизведения mp3 файлов на своем веб-сайте. С помощью Flash я могу передавать mp3 и защищать его на 95%.

С html5 легко узнать местоположение mp3 и просто загрузить его оттуда. Даже если я обеспечу его уникальными хешами, нетрудно проверить вкладку сети в хроме и увидеть mp3-адрес с хешей.

Мне было интересно, есть ли другие способы защитить mp3 от копирования и если это того стоит. Например bandcamp создает уникальные хэши, но по-прежнему очень легко скачать mp3. Для youtube вы получили загружаемые веб-сайты, которые могут обрабатывать поток flv и копировать аудио и сохранять его для пользователя в формате mp3.

Первым уровнем безопасности, о котором я могу думать, является изменение расширения mp3 файлов на .txt или другой общий формат.

95% пользователей не указывают расширение, поскольку оно скрыто по умолчанию для окон и apple. Это предотвратит, чтобы первые 95% пользователей увидели и воспроизвели mp3 файл.

Краткая версия

Любые предложения, запрещающие пользователям красть mp3 файлы при использовании аудиотекста html5.

Ответ 1

Вид.

Grooveshark отправляет запрос POST на серверную сторону script для потокового потока MP3, что очень затрудняет простое обращение и подделку без динамического создания запроса POST самостоятельно - особенно, поскольку вы должны попытаться для хранения собранного аудиофайла. Но вы можете использовать новый AudioContext, чтобы помочь решить эту проблему для большинства современных платформ...

Я использовал отличный пример из HTML5Rocks.com, чтобы изменить используемые заголовки следующим образом:

var dogBarkingBuffer = null;
// Fix up prefixing
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();

function loadDogSound(url) {
  var request = new XMLHttpRequest();
  request.open('POST', url, true);
  request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  request.responseType = 'arraybuffer';

  // Decode asynchronously
  request.onload = function() {
    context.decodeAudioData(request.response, function(buffer) {
      dogBarkingBuffer = buffer;
    }, onError);
  }
  //this is the encryption key
  request.send("key=98753897358975387943");
}

Связанные

Как вы можете видеть, я также отправляю ключевое значение, которое также может быть частью публичной/частной пары. Это должно помешать кому-либо вмешаться - кроме как просто запись MP3 во время его воспроизведения, конечно, но что могло бы прекратить это в любой среде внутри или вне компьютера?

Ответ 2

Короткий ответ

Нет.

Переименование аудиофайла в .txt не будет делать ничего, чтобы обеспечить безопасность вашего mp3 файла. Во всяком случае, это вызовет у вас еще больше проблем, потому что теперь ваш mp3 файл будет отправлен с неправильным типом MIME, что может вызвать проблемы с браузером, встроенным в аудиоплеер.

Лучшие предложения, которые я могу вам предложить:

  • Убедитесь, что вы проверяете HTTP-заголовок REFERER http, убедитесь, что он идет со страницы, на которой есть mp3-плеер.
  • Защитите mp3 файл уникальным хешем.
  • Не разрешать загрузку одного и того же хэша дважды *

* Заметьте, что даже это может вызвать проблемы, например, что произойдет, если пользователь снова откроет вкладку из кеша, снова воспроизведет файл, а mp3 файл не будет кэшироваться?

И, наконец, в конце даже после того, как ваш mp3 файл является самым защищенным mp3 файлом в истории IIS и Apache - что мешает мне просто открыть Adobe Audition и записать аудиопоток?

Хотя вы правы в аудиопотоке Bandcamp MP3, mp3 не так высокого качества, а просто обычная загрузка после покупки альбома.

Тот факт, что даже Google на самом деле не имеет каких-либо достойных защит на видеопотоках, должен что-то сказать. Компания, которая генерирует миллиарды долларов с видеообъявлений на YouTube, даже не может (или лучше не ставить - не потрудилась внедрять) какие-либо жизнеспособные методы защиты своих видеороликов.

Ответ 3

Отъезд Grooveshark HTML5-сайт. Это довольно безопасно. Когда вы играете песню, введите ее в строку URL и убедитесь сами: javascript:alert(window.GS.audio.audio.src);. Это не так просто, как grooveshark.com/songs/song.mp3, к сожалению.

Ответ 4

Вы могли бы сделать сами MP3 непривлекательными. Некоторые идеи:

  • Не включайте в свои файлы обложки альбомов, информацию об альбоме и т.д. (теги id3). Еще лучше, заполните все поля тега id3 чем-то вроде "Этот файл с myMusicSite.com".

  • Разделите свои файлы на несколько небольших фрагментов, а затем последовательно воспроизводите их в браузере. Чтобы загрузить все отдельные части, ваши файлы станут менее привлекательными. У вас могут быть проблемы с бесщелевым воспроизведением, но не уверен, насколько хорошо это поддерживается.

  • Кодировать и воспроизводить их как видео, возможно, с вашим логотипом или что-то в качестве видеопотока. Полученные файлы не будут намного больше, особенно. если вы используете статическое изображение. Это означает, что пользователи не могут легко воспроизводить ваши файлы на mp3-плеерах, телефонах и т.д.

  • Несколько раз шепчу свое имя домена или название веб-сайта в записи, как указано в комментариях.