Запретить прямой доступ к файлам и обслуживать через readfile () без разрешения «Выполнить» - PullRequest
0 голосов
/ 10 апреля 2019

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

Если я вызываю файл из корневой папки, т. Е. «/Home/user/Website.com/Files/MyFile.ext», файлу потребуются разрешения на выполнение, поскольку он выполняется до того, как readfile() отправит его пользователю. Если я вызываю его из 'https://Website.com/MyFile.ext', мне не нужны разрешения на выполнение, но ресурс либо заблокирован моим файлом .htaccess, либо он виден пользователю через URL.

Мое текущее решение состоит в том, чтобы установить права доступа к папке на 601 и установить мой .htaccess в 'https://Website.com/Files' на

Order Deny, Allow
Deny from all
Allow from xxx.ServerIpAddress

и мой php файл на

readfile('https://Website.com/Files/MyFile.ext');
exit();

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

...