Обеспечение сервера Apache против немного недоверяемого кода PHP?

У меня есть необычная ситуация, где мне нужны многочисленные пользователи, чтобы смочь загрузить и выполнить код PHP на моем сервере Apache, но я не могу позволить одному пользователю получать доступ к источнику другого пользователя PHP (если конкретные примеры заставляют Вас чувствовать себя лучше, предположить, что я размещаю PHP программирование конкуренции).

Вот то, что я имею до сих пор в PHP.ini:

disable_functions = readfile, fpassthru, file, file_get_contents, 
 system, fopen, symlink, rename, copy, exec, passthru, pcntl_exec, 
 backtick_operator, shell_exec, popen, proc_open

Что другие функции я должен был бы добавить к этому списку, чтобы препятствовать тому, чтобы код PHP получил доступ к локальным файлам (и следовательно другой источник PHP?)?

4
задан 21.08.2011, 10:22

3 ответа

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

(Обратите внимание, что это было depreacited в 5,3 и удалило в PHP6),

0
ответ дан 07.12.2019, 21:48

Также смотрите на http://www.suphp.org/, который выполняет Сценарии PHP с полномочиями пользователя вместо пользователя, которого веб-сервер выполняет как. Если Вы удостоверитесь, что веб-сервер может прочитать каталог (но не обязательно сам файл PHP), то он сможет выполнить эти файлы с полномочиями пользователя. Другие пользователи не должны мочь считать или получить доступ к ним в этом случае. Это должно быть более корректным и безопасным способом обработать это.

1
ответ дан 07.12.2019, 21:48

Вместо того, чтобы пытаться обработать это в PHP, я повысил бы слоя или два, и Apache использования + учетные записи Unix для разделения вещей - например, с помощью suexec для разделения процессов пользователя.

0
ответ дан 07.12.2019, 21:48

Теги

Похожие вопросы