Вместо жестких ссылок на файлы, вы можете сделать что-то вроде download.php?id=1234
и просто проверить наличие в базе данных 1234
, имеет ли пользователь права на скачивание файла и вообще не показывать физический путь к пользователю.
С помощью заголовков HTTP вы можете заставить пользователей загружать файл с желаемым именем файла (хранится в базе данных). Предоставление пользователям прямого доступа к своим файлам по физическим путям не очень хорошая идея, и если вы попытаетесь подключить .htaccess
к каждому запросу, это будет на самом деле дороже.
Большинство систем рассматривают генерацию некоторых случайных строк или идентификаторов GUID, которые нельзя просто получить доступ к чужому файлу путем случайного изменения символа. то есть в изображениях Facebook ../187170_697610597_4628627_q.jpg
есть тот сложный URL-адрес, к которому пользователи могут напрямую обращаться, но не могут угадать другой URL-адрес изображения, изменив несколько цифр, это слишком сложно, но небезопасно и не соответствует вашим требованиям.