Разрешить вход в систему пользователя для загрузки файла на PHP еще никто не может

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

Я сделал бы файл недоступным для доступа только через HTTP-запрос, а с помощью PHP просто распечатал его:

<?php session_start(); if (isset($_SESSION['logged_in'])) { $file = '/this/is/the/path/file.mp3'; header('Content-type: audio/mpeg'); header('Content-length: ' . filesize($file)); readfile($file); } ?> 
  • Поместите файлы MP3 над вашим docroot, или если это невозможно, запретите доступ к ним с помощью .htaccess (если вы используете Apache).
  • Убедитесь, что пользователь вошел в систему.
  • Отправьте соответствующие заголовки и readfile() в MP3, когда пользователь запросит файл.

Вы можете создать токен, основанный на чем-то вроде идентификатора сеанса пользователя и некоторого случайного значения. Затем зарегистрированные URL-адреса пользователя будут выглядеть так:

 /download.php?token=4782ab847313bcd