Скрыть или зашифровать URL-файлы файлов?

Приветствую всех и благодарю вас за ваше время. Я просто хотел бы сказать, что, хотя я не noobie на php, я все еще не знаю, и у меня все еще не хватает знаний, чтобы справиться с некоторыми из этих проблем.

Моя нынешняя дилемма:

У меня есть база данных с пользовательскими песнями, в которых есть вся информация, включая местоположение указанных песен. Способ, которым я работаю, это у меня есть php-скрипт, который эхо-файл xspf playlist для флеш-плеера, чтобы читать для тех, кто просматривает песни. (лучшая часть заключается в том, что игроку все равно, что это файл php, если он получает правильный XML-формат).

Проблема в том, что любой может посмотреть на источник (например, найти, что игрок использует xspf.php? = Song_id = 10), и php-файл выводит все в виде обычного текста. Как я могу скрыть или зашифровать местоположение mp3 от пользователей, но все же уметь правильно работать с игроком?

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

И еще раз спасибо за любые ответы!

Я ограничил доступ к файлам, связав их с php-скриптом, который проверяет, имеет ли пользователь доступ к файлу, и эхо-файл с readfile (), если пользователь имеет доступ к файлу. Затем вы можете сохранить файл в каталоге, к которому нельзя получить доступ напрямую через URL-адрес.

Возможно, плеер также не заботится о расширении файлов. Вы можете поместить mp3-записи в свой плейлист с url, как play.php? Songid = some_encoded_value.

Затем в play.php вы должны проверить, что пользователь имеет действительный сеанс. Вы также можете записывать количество раз, когда songid (если сгенерирован) может использоваться для доступа к песне – установите этот 1 или 2? Но в зависимости от поведения игрока (несколько запросов на сломанное соединение и т. Д.) Это может быть не самая безопасная идея, но должно быть в порядке.

Обратите внимание, однако, что продвинутые пользователи / разработчики, которые хотят загрузить песни, смогут, тем не менее, более или менее взломать. Решением для этого будет потоковая передача песен, закодированных в плеер, где игрок будет декодировать.

Но тогда алгоритм декодера в флеш-плеере можно расшифровать и т. Д.

Чем больше вы работаете, тем безопаснее, но абсолютная безопасность на самом деле невозможна.

Редактирование: для схемы songid естественно потребуется таблица сопоставления между фактическими файлами songid и real mp3. Отображение может быть в памяти сеанса, но предпочтительнее в базе данных. Файл play.php будет использовать функцию readfile (или аналогичную) для вывода песни на выходе. Кроме того, mp3-файлы также могут храниться в базе данных в двоичных блоках.

Я не знаю PHP, но концепция мудрая, я бы предложил следующее:

  1. Используйте некоторый ключ шифрования, специфичный для сеанса текущего пользователя, и передайте его вместе с файлом xspf.php.
  2. Не храните прямое расположение файлов MP3 в сгенерированном XML, но используйте файл PHP (с переданным пользователем, связанным с сеансом ключом, который затем проверяется), чтобы обслуживать файл MP3 в Flash-плагине и сохранять MP3-файлы в каталоге, недоступном через статический и общедоступный URL (так идеально за пределами вашего веб-корня).

Не беспокойтесь. Рассмотрим ситуацию, когда Flash Player находится за прокси. В любом случае вы увидите все URL-адреса прокси-сервера. Чтобы убедиться в этом, используйте Fiddler (бесплатный инструмент, действует как прокси-сервер и показывает HTTP-трафик).