PHP - другой open_basedir на каждый виртуальный хост

Я имею, столкнулся на этой проблеме, у меня есть разъединять рабочий апач и php. У нас есть много виртуальных хостов, но мы заметили, что потенциально злонамеренный пользователь мог использовать свое интернет-пространство для просмотра файлов другого пользователя (с помощью простого сценария PHP) и даже системные файлы, это могло происходить из-за php полномочий. Способ избежать его состоит в том, чтобы установить open_basedir var в php.ini, yhis очень прост в единственной хост-системе, но в случае виртуальных хостов был бы basebir на каждый хост.

Ho я могу установить скидку basedir на каждого пользователя/хост? есть ли способ позволить апачскому hereditate php полномочия php файла, который требовали

НАПРИМЕР,/home/X_USER/index.php имеет как владелец X_USER, когда апачи читают файл index.php, он проверяет свой путь и владельца, просто я ищу системный php набора basedir переменная к тому пути.

Благодарность заранее Lopoc

14
задан Lopoc 6 May 2010 в 12:48
поделиться

2 ответа

Можно установить open_basedir на основе каждого каталога, используя директиву php_admin_value Apache.

Пример из руководства:

<Directory /docroot>
  php_admin_value open_basedir /docroot 
</Directory>

По поводу вашего комментария: да, на внешние команды не влияет open_basedir - при вызове ls / это делается с правами учетной записи пользователя, под которой работает PHP (часто называемой www или подобной). Насколько я знаю, невозможно распространить open_basedir на внешние команды.

В таком случае, я не думаю, что защита, которую вы ищете, возможна в обычной установке Apache/PHP. Единственное, что может быть ближе, это запуск Apache в chroot jail. Я сам этого не делал, поэтому не могу ничего об этом сказать - вам придется покопаться и, возможно, задать вопрос конкретно об этом.

18
ответ дан 1 December 2019 в 13:08
поделиться

Вы можете установить множество параметров php.ini с помощью конфигурационного файла Apache.

Смотрите эти связанные страницы из руководства по PHP: - http://php.net/manual/en/configuration.changes.php - http://www.php.net/manual/en/ini.core.php#ini.sect.path-directory - http://www.php.net/manual/en/configuration.changes.modes.php

1
ответ дан 1 December 2019 в 13:08
поделиться
Другие вопросы по тегам:

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