Ограничение доступа к файлу напрямую через URL

Потерпите меня, я новичок в этом. Я создал простой веб-сайт с системой входа пользователей с использованием php/sql. Это отлично работает, и подлинность контролируется с помощью сеанса. Идея веб-сайта состоит в том, чтобы позволить пользователям загружать файлы pdf и docx. Очевидно, я хочу ограничить доступ только для зарегистрированных пользователей, однако, если пользователь не вошел в систему и просто пытается получить доступ к файлам, введя прямой URL-адрес в веб-браузер, файл загружается. Мой вопрос: как я могу предотвратить прямой доступ к файлу по URL-адресу, т.е. пользователь не вошел в систему, и поэтому, если будет предпринята попытка прямого URL-адреса, это предотвратит загрузку файла, тогда как вошедший в систему пользователь может загрузить указанный файл?


person Mark Garside    schedule 27.04.2020    source источник
comment
Основной подход заключается в том, что вы вообще не разрешаете доступ к файлам. Вместо этого вы создаете PHP-скрипт, который позволяет пользователю загрузить файл. С PHP вы можете читать файлы и пересылать файлы в браузер. Теперь, когда причиной загрузки является PHP, вы можете добавить необходимые операторы if, чтобы предотвратить загрузку.   -  person Evert    schedule 27.04.2020
comment
Переместите файлы за пределы корня документа и используйте сценарий PHP для проверки сеанса пользователя, а затем используйте readfile() для обслуживания файла   -  person Phil    schedule 27.04.2020