Как доставлять музыку (прогрессивно / загружать) через Интернет, не раскрывая URL-адреса mp3-файлов (даже в браузерах webkit) - PullRequest
0 голосов
/ 05 февраля 2010

Я хочу иметь возможность доставлять музыку / mp3 с помощью флеш-плеера, но я бы хотел сделать так, чтобы mp3-файлы не могли быть прослушаны ... т.е. вы не можете использовать safari, firebug..etc чтобы узнать местоположение mp3, используя окно активности. У меня нет сервера потоковой передачи. Любая идея?

Если я пойду с потоковым сервером, какие-нибудь предложения о том, как это сделать (дешево)?

Ответы [ 7 ]

6 голосов
/ 05 февраля 2010

Вы действительно не можете безопасно различать клиентов по HTTP. Когда они записывают весь трафик, они всегда могут воспроизвести взаимодействие, если вы не используете некоторые криптографические механизмы.

В качестве простого подхода я бы попытался разрешить запросы только в сочетании с ключом доступа. Ключ доступа создается вами и отправляется в браузер в качестве параметра URI. Когда клиенты отправляют запрос, он действителен только в том случае, если предоставленный ключ доступа также действителен. В ключе доступа вы можете закодировать некоторую информацию, такую ​​как IP-адрес, временной диапазон, пользовательский агент и т. Д.

Но, как я уже сказал, не существует 100% безопасного способа защитить ваши данные, если вы в конечном итоге предоставите их через HTTP. Всегда есть хардкорный подход, чтобы перехватить весь трафик и перестроить файлы таким образом.

Ключи доступа используются Amazon S3, но есть также плагины для веб-серверов, таких как nginx.

3 голосов
/ 05 февраля 2010

Если вы доставляете mp3 на компьютер пользователя, вы доставляете mp3 на компьютер пользователя. Я полагаю, вы можете попробовать какое-то шифрование, чтобы затруднить восстановление MP3, но если компьютер пользователя может воспроизводить его, он также может взять те же самые биты и сохранить их на диск перед их воспроизведением.

3 голосов
/ 05 февраля 2010

Это более или менее невозможно. Поскольку клиент может подключиться, он должен знать адрес. Вы пытаетесь скрыть источник, но не можете полностью его скрыть, и я полагаю, что самым простым способом было бы использовать какой-нибудь плагин для браузера, Flash и Java приходят на ум (как вы предложили), который спрашивает сервер для адреса. Обратите внимание, что все еще можно анализировать flash или java-программы, так как браузеру все равно нужно загрузить файл .swf.

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

2 голосов
/ 05 февраля 2010

Перейти на потоковую передачу, или это невозможно. Firebug, Opera Dragonfly и т. Д. Показывают все HTTP-запросы, выполняемые браузером, скрыть их невозможно. Я загружаю медиафайлы изнутри (например, на YouTube), и они работают каждый раз, кроме потоковой передачи, потому что это не HTTP.

1 голос
/ 07 февраля 2010

используйте сервер сокетов и затемните соединение. Я думаю, что что-то вроде electroserver должно делать то, что вы хотите, раньше у него была бесплатная лицензия на срок до 25 или около того пользователей, а для лицензирования это всего пара сотен. Не уверен насчет ES4 .... Это может быть излишним для ваших нужд.

1 голос
/ 05 февраля 2010

Вы можете использовать двустороннее шифрование.

Вы передаете зашифрованные URL-адреса в аудиоплеер, а затем проигрыватель выполняет их обратное шифрование. Не на 100% безопасно, но это может помочь.

1 голос
/ 05 февраля 2010

Невозможно скрыть URL без использования какой-либо закрытой технологии, такой как Flash. Альтернативой, которую вы можете использовать, является сохранение ваших MP3-файлов в защищенном паролем каталоге, но потоковая передача их в браузер через сценарий на стороне сервера, который обходит эту защиту. Таким образом, даже если кто-то знает URL-адрес файла MP3, он не может загрузить его, просто введя его адрес в веб-браузере.

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