apache php как защитить директории сервера
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- shuk007
- рядовой
- Сообщения: 45
- Зарегистрирован: 2009-02-05 12:19:38
apache php как защитить директории сервера
Здраствуйте!
У меня на серваке на одном ip стоит несколько сайтов (VirtualHost)
И проблемма в том что с помощю функции dir() в пхп я смогу сканировать все каталоги сервера.
Я вкючил безопасный режим в пхп но не чего не изменилось.
ПОЖАЛУЙСТА помогите как сделать чтобы скрипт вне корневого каталога сайта не срабатывало, не сканировало....
У меня на серваке на одном ip стоит несколько сайтов (VirtualHost)
И проблемма в том что с помощю функции dir() в пхп я смогу сканировать все каталоги сервера.
Я вкючил безопасный режим в пхп но не чего не изменилось.
ПОЖАЛУЙСТА помогите как сделать чтобы скрипт вне корневого каталога сайта не срабатывало, не сканировало....
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
- shuk007
- рядовой
- Сообщения: 45
- Зарегистрирован: 2009-02-05 12:19:38
Re: apache php как защитить директории сервера
я включил safe_mode НО к сожалению ничего не изменилось или я что то не то сделал
В php.ini изменил вот такие строчки:
были Off изменил их на
В php.ini изменил вот такие строчки:
были Off изменил их на
Код: Выделить всё
safe_mode = On
safe_mode_gid = On
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: apache php как защитить директории сервера
не не не, сэйф моде работает только с владельцами и группой, а есть ещё это написано в http://ru.php.net/manual/ru/ini.sect.safe-mode.php
Код: Выделить всё
open_basedir string
Ограничивает список файлов, которые могут быть открыты в PHP, указанным деревом директорий независимо от того, используется защищенный режим или нет.
Каждый раз, когда скрипт пытается открыть файл, например, при помощи функции fopen() или gzopen(), проверяется месторасположение файла. В случае, если он находится вне указанного дерева директорий, PHP отказывает в открытия файла. Все символические ссылки распознаются и преобразуются, поэтому обойти это ограничение при помощи символических ссылок невозможно.
Специальное значение . указывает, что базовой следует считать директорию, в которой расположен сам скрипт. В этом случае следует быть осторожным, так как рабочую директорию скрипта можно легко изменить при помощи функции chdir().
Опция open_basedir может быть отключена в конфигурационном файле httpd.conf (например, для некоторых виртуальных хостов) точно таким же образом как и любая другая директива: "php_admin_value open_basedir none".
Для Windows-систем разделителем списка директорий служит точка с запятой. Для всех других операционных систем в качестве разделителя используется двоеточие. В случае, если PHP работает как модуль веб-сервера Apache, все указания open_basedir для родительских директорий наследуются.
Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет открывать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/".
- shuk007
- рядовой
- Сообщения: 45
- Зарегистрирован: 2009-02-05 12:19:38
Re: apache php как защитить директории сервера
Огромное вам спасибо!!
Вы не могли бы одну пример привести пожалуйста
У меня в httpd.conf VirtualHost ы таким образом сконфигурированы:
вот таким образом я использовал:
НО при перезагрузки Apachа пишет что модуль не включен:
Вы не могли бы одну пример привести пожалуйста
У меня в httpd.conf VirtualHost ы таким образом сконфигурированы:
Код: Выделить всё
<VirtualHost xxx.xxx.xxx.xx:80>
ServerName example.com
ServerAlias texample.com www.example.com
ServerAlias www.exampleftp.com
DocumentRoot /data/home/public_html/example.com
ServerAdmin webmaster@example.com
UseCanonicalName off
<IfModule mod_suphp.c>
suPHP_UserGroup www www
</IfModule>
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xx:80>
ServerName example2.com
ServerAlias texample.com www.example2.com
ServerAlias www.exampleftp2.com
DocumentRoot /data/home/public_html/example2.com
ServerAdmin webmaster@example2.com
UseCanonicalName off
<IfModule mod_suphp.c>
suPHP_UserGroup www www
</IfModule>
</VirtualHost>
Код: Выделить всё
<VirtualHost xxx.xxx.xxx.xx:80>
ServerName example2.com
ServerAlias texample.com http://www.example2.com
ServerAlias http://www.exampleftp2.com
DocumentRoot /data/home/public_html/example2.com
ServerAdmin webmaster@example2.com
UseCanonicalName off
php_admin_flag safe_mode on
php_admin_flag safe_mode_gid on
php_admin_value open_basedir /data/home/public_html/example2.com
<IfModule mod_suphp.c>
suPHP_UserGroup www www
</IfModule>
</VirtualHost>
Код: Выделить всё
root# /usr/local/etc/rc.d/httpd restart
Invalid command 'php_admin_flag', perhaps mis-spelled or defined by a module not included in the server configuration
Invalid command 'php_admin_value', perhaps mis-spelled or defined by a module not included in the server configuration
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: apache php как защитить директории сервера
Код: Выделить всё
<VirtualHost *:80>
ServerName dva.com
ServerAlias www.dva.com dva.ru www.dva.ru dva
ServerAdmin some@admin
DocumentRoot "/usr/local/www/apache22/data/dva"
<Directory "/usr/local/www/apache22/data/dva">
AllowOverride All
Order Deny,Allow
Allow from all
Options All
</Directory>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html index.htm
php_admin_value open_basedir "/usr/local/www/apache22/data/dva"
</IfModule>
</VirtualHost>
Код: Выделить всё
zg# apachectl configtest
Syntax OK
zg#
Код: Выделить всё
zg# php "/usr/local/www/apache22/data/dva/index.php"
Root directory
Array
(
[0] => /COPYRIGHT
[1] => /bin
[2] => /boot
[3] => /cdrom
[4] => /compat
[5] => /dev
[6] => /dist
[7] => /etc
[8] => /home
[9] => /lib
[10] => /libexec
[11] => /media
[12] => /mnt
[13] => /proc
[14] => /rescue
[15] => /root
[16] => /sbin
[17] => /sys
[18] => /tmp
[19] => /usr
[20] => /var
)
zg# links -dump http://dva
Root directory
zg#
- shuk007
- рядовой
- Сообщения: 45
- Зарегистрирован: 2009-02-05 12:19:38
Re: apache php как защитить директории сервера
а как установить mod_php5.c в Apache, у меня он не установлена
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: apache php как защитить директории сервера
shuk007 писал(а):установить mod_php5.c в Apache
Код: Выделить всё
zg# grep php /usr/local/etc/apache22/httpd.conf
LoadModule php5_module libexec/apache22/libphp5.so
zg#
- shuk007
- рядовой
- Сообщения: 45
- Зарегистрирован: 2009-02-05 12:19:38
Re: apache php как защитить директории сервера
у меня не получилось 
