Безопасность тегов в 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-плеерах, телефонах и т.д.
-
Несколько раз шепчу свое имя домена или название веб-сайта в записи, как указано в комментариях.