Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Общие вопросы
  • Search

Как ограничить php скрипты только папкой юзера?

Общие вопросы о панели управления Vesta
Post Reply
  • Print view
Advanced search
6 posts • Page 1 of 1
GEniraL
Posts: 8
Joined: Wed Jul 03, 2013 2:06 pm

Как ограничить php скрипты только папкой юзера?
  • Quote

Post by GEniraL » Wed Jul 03, 2013 2:58 pm

Для теста залил на созданный домен шелл скрипт - файл менеджер на php. Так вот он оказывается может выходить из папки домена и выходить вплоть до верхнего уровня. В результате можно перейти в любую папку. Например ../../../../../etc/httpd/conf.d/ и почитать конфиги. Изменить конфиги не удалось, но на чтение открываются. Конечно же таким образом можно много чего найти на сервере.

Как можно запретить подобным php скриптам выходить за пределы папки юзера? Сделать бы примерно как у ФТП, там нельзя выйти за пределы домашней директории.
Top

skid
VestaCP Team
Posts: 1476
Joined: Wed Apr 06, 2011 11:12 pm

Re: Как ограничить php скрипты только папкой юзера?
  • Quote

Post by skid » Thu Jul 04, 2013 6:53 am

Таким образом можно получить только список пользоваталей. Узнать информацию о доменах не выйдет, так как конфигурация недоступна на чтение.

Добиться нужного поведения можно при помощи директивы open_basedir. Я подготовил шаблоны с примерами. Чтобы установить их, выполните:

Code: Select all

cd /usr/local/vesta/data/templates/web/httpd/
wget http://c.vestacp.com/0.9.8/rhel/templates/web/httpd/basedir.tpl
wget http://c.vestacp.com/0.9.8/rhel/templates/web/httpd/basedir.stpl
Затем зайдите в нужный домен и установите шаблон basedir. Если это то, что нужно, сделайте этот шаблон шаблоном по умолчанию в пакете.
Top

sartas
Posts: 10
Joined: Thu Jun 20, 2013 3:09 pm

Re: Как ограничить php скрипты только папкой юзера?
  • Quote

Post by sartas » Thu Jul 04, 2013 8:20 am

Только не забывайте что есть еще перловые скрипты, на которые open_basedir не действует. Некоторые мелкие хостеры забывают про это, и уверенные в своей безопасности, плохо следят за правами на файлы. Иногда попадаются файлы бэкапов с правами на чтение )
Top

GEniraL
Posts: 8
Joined: Wed Jul 03, 2013 2:06 pm

Re: Как ограничить php скрипты только папкой юзера?
  • Quote

Post by GEniraL » Thu Jul 04, 2013 2:44 pm

skid wrote:Таким образом можно получить только список пользоваталей. Узнать информацию о доменах не выйдет, так как конфигурация недоступна на чтение.

Добиться нужного поведения можно при помощи директивы open_basedir. Я подготовил шаблоны с примерами. Чтобы установить их, выполните:

Code: Select all

cd /usr/local/vesta/data/templates/web/httpd/
wget http://c.vestacp.com/0.9.8/rhel/templates/web/httpd/basedir.tpl
wget http://c.vestacp.com/0.9.8/rhel/templates/web/httpd/basedir.stpl
Затем зайдите в нужный домен и установите шаблон basedir. Если это то, что нужно, сделайте этот шаблон шаблоном по умолчанию в пакете.
Попробовал. Шеллы хорошо ограничило. Думаю open_basedir можно добавить во все шаблоны, хуже не будет, преимущество на лицо.
Top

sartas
Posts: 10
Joined: Thu Jun 20, 2013 3:09 pm

Re: Как ограничить php скрипты только папкой юзера?
  • Quote

Post by sartas » Thu Jul 04, 2013 2:59 pm

Думаю open_basedir можно добавить во все шаблоны, хуже не будет
Bitrix не одобряет open_basedir.
Top

Enkil
Posts: 67
Joined: Thu Jan 31, 2013 1:09 am

Re: Как ограничить php скрипты только папкой юзера?
  • Quote

Post by Enkil » Thu Jul 04, 2013 3:40 pm

sartas wrote:
Думаю open_basedir можно добавить во все шаблоны, хуже не будет
Bitrix не одобряет open_basedir.

нормально оно работает

сайт на битриксе, Nginx+php-fpm

вот содержание настройки пула

Code: Select all

[mayflower.ru]

listen = /var/run/php5-mayflower.sock
        listen.mode = 0666
        user = mayflower
        group = mayflower
        chdir = /var/www/vhosts/php/mayflower.ru/

        php_admin_value[upload_tmp_dir] = /var/www/vhosts/php/mayflower.ru/tmp
        php_admin_value[upload_max_filesize] = 100M
        php_admin_value[post_max_size] = 100M
        php_admin_value[open_basedir] = /var/www/vhosts/php/mayflower.ru
        php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
        php_admin_value[cgi.fix_pathinfo] = 0
        php_admin_value[date.timezone] = Europe/Moscow

        pm = dynamic
        pm.max_children = 10
        pm.start_servers = 2
        pm.min_spare_servers = 2
        pm.max_spare_servers = 4
Top


Post Reply
  • Print view

6 posts • Page 1 of 1

Return to “Общие вопросы”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password