2016-04-10 7 views
0

Я хочу сделать файлы в определенном каталоге доступными только для php, конкретная ситуация заключается в том, что у меня есть папка с некоторыми подпапками в ней, и каждая вложенная папка содержит много файлов (может быть каждый тип файла, например изображения, код, исполняемые файлы и т. д.). Теперь я построил скрипт, чтобы иметь возможность загружать файлы, которые работают, НО есть возможность просто перейти к server.com/folder/subfolder/img.jpg, чтобы просмотреть изображение. Этого я не хочу допускать.Сделать файл доступным только для php

Есть ли способ, которым я могу это сделать?

PS: Я запускаю сервер Ubuntu 14.04 с apache2 и PHP7.

Редактировать: Вопрос может быть дублирован связанному вопросу, но для меня нет ответа .htaccess ничего не меняет, и папка должна оставаться там, где она есть.

+2

Возможный дубликат [Как сделать определенные файлы доступными только для скриптов PHP?] (Http://stackoverflow.com/questions/5757510/how-do-i-make-certain-files-accessible-just-for -php-scripts) – Chris

+1

Вы пытаетесь использовать неправильный подход. Что-то вроде этого не разрешено обработкой внутреннего разрешения файловой системы, что невозможно. Вместо этого вы используете «скрипт маршрутизатора», который обрабатывает запросы к любым таким файлам, в то время как сами файлы недоступны с помощью прямого HTTP-запроса _at all_. Они хранятся вне опубликованной части дерева файлов. Сценарий маршрутизации может использовать стратегию whtever, которую вы хотите разрешить, и затем «раздавать» файл, сначала отправив соответствующие заголовки http, а затем сам файл. – arkascha

+0

@arkascha Почему нет файла .htaccess с «отказом от всех»? – user5638730

ответ

0

Если вы хотите обратиться к этому файлу с помощью файловой системы, вы должны признать, что у вас есть некоторые существенные ограничения по системе. Например, ваши скрипты PHP не могут работать как один и тот же пользователь, что и Apache, и поэтому не могут работать в Apache.

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

 Смежные вопросы

  • Нет связанных вопросов^_^