Как читать файлы из папки apache с помощью PHP - PullRequest
0 голосов
/ 01 апреля 2012

Я давно этим занимаюсь, я имею в виду, я могу без проблем читать и писать файлы с использованием PHP, но теперь мне нужно сделать что-то другое, мне нужно получить доступ к файлам из папки www на Apache,например:

Обычно я использую путь / var / www /, когда я использую apache в Linux, но если мне нужно получить доступ к файлам в папке /etc/anyfolder/anyfile.conf, как это сделать?Я делаю это?

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

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

Сначала посмотрите на chown файла, если apache.

Во-вторых, проверьте разрешение, если оно доступно для чтения / записи.

В-третьих, вам нужно взглянуть на параметр open_basedir в php.ini и apache.

1 голос
/ 01 апреля 2012

Если вы хотите получить доступ к любому файлу через PHP, то пользователь или группа, в которой работает PHP, должны иметь права доступа к этому файлу. При этом, если вам нужно только прочитать файл, вы можете клонировать файл и получить доступ к копии. Если рассматриваемый файл редко изменяется, то вы можете сделать это вручную, в противном случае вы можете сделать это с помощью сценария оболочки и cron, который копирует файл очень часто (как бы часто вам это не требовалось). Таким образом, вы не открываете права доступа к реальному файлу. Если вам нужно записать в этот файл, то я полагаю, что вы могли бы сделать аналогичный подход (получить доступ к копии файла через PHP, затем запустить скрипт, который скопирует его в исходный файл в вашей папке / etc, но если вы сделаете это, вам следует также проверьте, отправляется ли пользовательский ввод ПЕРЕД записью в исходный файл, чтобы убедиться, что ничего злонамеренного не выдвинуто.

Главное, о чем вам нужно беспокоиться, это сделать ваши файлы PHP защищенными от всех, кто запускает сценарии со злым умыслом (что вам следует делать со всеми файлами PHP независимо от их функций). Это означает проверку любого пользовательского ввода и обеспечение того, чтобы, если кто-то имел доступ к любым файлам PHP (или к чему-либо еще на вашем сервере, работающему с тем же пользователем / группой, что и PHP), ваши конфиденциальные системные файлы были бы защищены. Также предоставьте только минимальные разрешения, необходимые для того, что вы делаете (т. Е. Не нужно давать разрешения на запись или исполняемый файл, если все, что вы хотите сделать, - это чтение файла, и нет необходимости предоставлять доступ на уровне каталога, если вы хотите разрешить доступ). к определенным файлам в этом каталоге).

И последнее: посмотрите, зачем вам сначала предоставить PHP доступ к этим файлам, и посмотрите, есть ли альтернативное решение. Если вы разрешаете доступ к файлам / etc, тогда я предполагаю, что это файлы конфигурации для какого-либо приложения или другого. Учитывая, что обновление такого файла приведет к изменению поведения приложения для всех остальных пользователей, это действительно то, к чему вы стремитесь?

...