На серверах, выполняющих общий веб-хостинг или совместно использующих среду PHP между различными приложениями PHP, я обычно реализую политику безопасности, которая использует PHP. open_basedir
чтобы ограничить каждого пользователя его / ее собственным каталогом (наряду с другими директивами PHP, такими как disable_functions
например). Я также вижу здесь довольно много сообщений в SF, в которых обсуждаются преимущества использования этой функции.
Однако теперь я натыкаюсь на это уведомление в файле пакета Debian. README.Debian.security
прямо заявив, что они не обеспечивают поддержку безопасности (среди прочего):
* Vulnerabilities involving any kind of open_basedir violation, as
this feature is not considered a security model either by us or by
PHP upstream.
Так что мне интересно, это заявление сделано только для того, чтобы отказаться от какой-либо ответственности, или у него есть более фундаментальные причины?
В частности, как бы вы могли защитить PHP-сервер, используемый несколькими разными пользователями, без open_basedir
и при этом стараясь не увеличивать затраты на техническое обслуживание? Или вы бы просто порекомендовали никогда не использовать виртуальный хостинг, как заявляют разработчики PHP в своих записка о безопасности?
Похоже, причина отказа от ответственности в том, что есть способы выйти из правила open_basedir. Я бы все равно использовал его на общем хосте, но не рассчитываю на него как на вашу единственную безопасность. Кроме того, каждый виртуальный хост должен принадлежать другому пользователю, и запускать процесс apache под этой учетной записью пользователя для сценариев на этом хосте.
Что касается вашего более общего вопроса, я действительно думаю, что эпоха виртуального хостинга почти закончилась. Технология виртуального хоста продвинулась до такой степени, что общий хост практически бесполезен.