Как я могу запретить пользователям загружать MP3 напрямую

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

Если пользователь открывает журнал HTTP (например, FireBug), он может видеть файлы, загружаемые с помощью флэш-памяти. Если он открывает URL-адрес mp3 непосредственно через адресную строку, он может легко загрузить MP3, хотя URL-адреса не могут быть угаданы пользователем.

Я ищу безопасную систему, чтобы пользователь не мог загружать MP3 прямо в свою систему. Я проверил last.fm, так как они используют аналогичную настройку, и почему-то они это предотвращают.

2 ответа

Решение

В конце концов, вы не сможете остановить кого-то решительного. Тем не менее, вы можете, по крайней мере, сделать это сложно.

Есть несколько вариантов, включающих проверку реферера, аутентификацию и тому подобное. Но, вероятно, самая успешная проверка антизагрузки, которую я видел, была такой, которая работает так:

Пользователь указывает, что он хочет передать файл; приложение делает аутентифицированный, зашифрованный запрос, указывающий его желаемое действие. В результате получается одноразовый и ограниченный по времени URL-адрес, который распознается любым приложением или CDN, на котором размещен файл. После того, как URL-адрес используется один раз (т. Е. Приложением flash), срок его действия истекает и его уже нельзя использовать снова. Если потоковая передача не начинается в течение определенного периода времени (несколько секунд), URL-адрес также истекает. Очевидно, что указанный URL-адрес напрямую не соответствует имени файла, но вместо этого аутентифицируется, декодируется и транслируется на стороне сервера.

Это все еще не невозможно обойти, но это довольно сложно.

Вы можете использовать RTMP вместо HTTP для доставки аудиоданных. RTMP предназначен для потоковой передачи аудио, видео и разных данных. Он передает только данные, а не файл. Это не на 100% безопасно, потому что, если что-то попадает в клиент (браузер, флэш-плеер и т. Д.), Пользователь может сохранить его, но это все же лучше, чем передавать файл по HTTP.

Вам понадобится сервер с поддержкой RTMP, например, Flash Media Server (FMS), Wowza или Red5.

Другие вопросы по тегам