Как сделать так, чтобы пользователям было трудно сохранять mp3-файлы со своего сайта на свои жесткие диски? - PullRequest
1 голос
/ 16 мая 2009

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

В настоящее время я занимаюсь:

  • Сохранение mp3-файлов в каталог, который недоступен для моего веб-сервера.
  • Использование заголовков для изменения типа mime на text / html вместо audio / mpeg (мой SWF-плеер не заботится, он просто читает данные)

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

У кого-нибудь есть предложения, как сделать это более трудным? Спасибо.

Ответы [ 5 ]

2 голосов
/ 16 мая 2009

Прямое подключение к файлу на сервере с Flash называется потоковой передачей. Это заставляет проигрыватель Flash загружать весь файл с сервера во время воспроизведения. Существует еще одно решение: потоковая передача, которая в любой момент во время воспроизведения загружает только небольшую часть данных на компьютер пользователя.

Самым надежным вариантом для флэш-памяти является использование потокового сервера для вашего контента. Flash Media Server является одним из вариантов, но это продукт, который вы можете либо приобрести, либо найти размещенную версию (например, Akamai). Если вы меньше, есть версии с открытым исходным кодом медиа-сервера, такие как Red5 (http://osflash.org/red5)

Не уверен насчет Windows Media Player или QuickTime плееров, но я уверен, что там тоже есть похожие решения

2 голосов
/ 16 мая 2009

Используйте скрипт PHP, чтобы замаскировать местоположение, чтобы

http://www.site.com/files/foo.mp3

Становится

http://www.site.com/files.php?fn=foo.mp3

Flash, вероятно, следующий шаг оттуда. Возможно, он использовал некую форму одноразового идентификатора для авторизации загрузки с использованием общего состояния. Ваш session_id будет полезен здесь.

Помните: Flash может хранить кеш в какой-то временной папке ... Я знаю, что раньше находил /tmp/aiden-sdjks/foo.mp3 на некоторых проигрывателях Может ли быть лучшее потоковое решение во флэш-памяти, которое использует другой формат файла на сервере?

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

Безопасность через неизвестность однако опасная дорога спускаться вниз. Кто-то, при достаточных усилиях, всегда добьется успеха. Посмотрите, как BBCIplayer выполняет DRMification, может помочь.

0 голосов
/ 17 мая 2009

Вы должны хранить файлы в защищенном каталоге. Мой хостинг (почти свободная речь) настраивает это для вас автоматически, и вы можете извлечь файл из сценария CGI (например, PHP) и либо записать во временный файл, либо напрямую использовать двоичный файл. Например, я храню простой список посещений моего личного веб-сайта в этом каталоге, который выходит за рамки корневого веб-сайта.

0 голосов
/ 16 мая 2009

Я не знаю, может ли это сделать решение для Flash Player, но, возможно, стоит взглянуть на него.

0 голосов
/ 16 мая 2009

Зависит от того, как сильно вы хотите это сделать. Вы можете использовать javascript, чтобы переписать URL, базовый ROT-13, и, надеюсь, люди не потрудятся его расшифровать.

Я не пытался поместить функцию javascript в html-объект src.

...