Forum Webscript.Ru
Общие => Веб Сервера => Тема начата: intercon от 18 Января 2002, 04:57:11
-
Доброе время суток
помогите плиз решить ):
"у меня хостят 2 клиента. их родительские директории
/opt2/intercon1/httpd/htdocs/firms/customer1 и
/opt2/intercon1/httpd/htdocs/firms/customer2
Как сделать чтобы они не видели друг друга? имеется ввиду чтобы они не
могли
"лазить" в директории друг друга и использовать SSI и PHP вставочки со страниц не принадлежащих им
По идее нужно поставить какой то "permissions" на папочку firms и/или сунуть туда какой нибудь страшный файлик .htaccess
спасибо
виктор
-
Никсовая машина ?
лазать по фтп - настрой доступ по фтп для данных папок. Apache тут не причем.
SSI они не смогут использовать из другой директории - путь до него читается от корня сайта, который задается в директиве DocumentRoot
А так, сделай просто пермишны на все файлы типа 0644 Для того, чтобы тиснуть инфу с чужого сайта - надо по меньшей мере знать, где она лежит.
Если чего еще вспомню - напишу.
-
не катит....я перепробовал все по доступу ): (тупым методом перебора) тут по идее надо фигню типа .htaccess использовать...
-
Да. Я балбес.
В .htaccess пишешь такое:
Для первой конторы:
allow from all
deny from http://www.customer1.ru
Для второй:
allow from all
deny from http://www.customer2.ru
Или по IP:
allow from all
deny from Customer2
Для второй:
allow from all
deny from IP Customer1
Это можно прописать либо в httpd.conf либо в .htaccess
Лучше, конечно в httpd.conf
Напиши, если не заработает.
-
По моему чо то наклевывается... только эту фигню нужно написать для директории firm, иначе customer1 и customer2 выкинут их со своих директорий ): кстати их не 2 а больше.
Ты можеш написать эту хренотень? Где можно по русски прочитать про это?
сенкса ):
-
Нет директорию firms писать нельзя. Просто я первом варианте я описался. ссылки на хосты надо поменять местами.
Ты это напиши в httpd.conf Тогда они не выкинут ничего.
Где прочитать по-русски - не знаю :(
Чего там писать-то?
Напиши это практически так, как есть.
Как вариант попробуй так:
order deny allow
allow from all
deny from IP 192.168.172
Вместо того адреса, что я поставил впиши IP всех, кто у тебя хостится, или если они все в одной подсетке то неполный IP
типа:
197.168.172/255.255.25.240 <=> IP/NetMask
-
а почему нельзя в firms, я не понял?
-
Извини, описался. Немного неправильно поначалу тебя понял.
-
теперь я не понял, чего ты не понял ):
-
Да уровни вложенности неправильно посчитал. В общем не важно. Самый безопасный способ - httpd.conf
-
ну, ладно. не горячись. насколько я понимаю .htacces имеет приоритет над httpd.conf в конкретной директории. По моему в этом направлении грести надо... По идее эта задача стандартная и решенная сисадминами хостинговых компаний, потому что по существу речь идет о виртуальном (не Shared хостинге). Но я обращался к некоторым хостерам-они молчат, или в мануал посылают. И по идее здесь одним .htaccess не обойтись
-
Почему не обойтись?
Просто то, что я тебе привел - можно сказать взято из мануала.
-
пхп чихать хотел на .htaccess.....
-
Так клиент не сможет выложить скрипт в директорию уровнем выше чем DocumentRoot.
Потом скрипт же посылает айпишник своего сервака на другой сервак. Тут ты его хтассесом и отрезаешь.
или я не прав?
Урл он тоже посылает. Так что можно и по нему кастрацию проводить.
-
речь идет не о доступе через www, а о клиентах, которые имеют доступ к управлению субдиректориями
-
Ну так клиенты-то не имеют доступа к директории уровня firms, а имеют доступ только к своим директориям, которые в ней лежат. Просто запрети доступ к firms для них всех и все.
-
корневой доступ к серверу нужно для них оставить
-
нужно сделать аналог вилки, типа того...
-
Так. Тогда отпиши самый верхний уровень доступа, который им нужен (на своем примере) Что0то вроде:
Должны иметь доступ к папке htdocs и ниже.
И в какой папке хранится сам сайт?
-
сайты хранятся в субдиректориях customer1, customer2 и так далее. а корень /opt2/intercon1/httpd/htdocs/firms/
ответы профи на пхпклуб.нет типа "Открой http://www.php.net, там документаци, и почитай про safe_mode."
-
Ну Ладно. Значит сайты (индексный файл сайта ) в директории /opt2/intercon1/httpd/htdocs/firms/customer1/ для пользователя customer1. Так?
Имеют ли доступ пользователи к директории firms и если да, то зачем их туда надо пускать?
-
их не надо пущать в директорию firms и ее (не свою) субдиректории, но надо разрешить доступ от корня
-
Ну так закрой им доступ на уровень выше и все.
Завтра с утра попробую сам и скажу о результатах.
-
проблема не решается "permissions" потому что ресь идет о том чтобы оба моих клиента не могли испортить жизнь друг другу имея доступ к своим директориям. Надо как то запретить пхп пролезать в firms, ssi вроде бы не так страшен пока на первый взгляд
-
Так РНР и не пролезет. как ты себе видишь механизм такого пролезания? Копировать файл фтп не получится, так как доступ закрыт, а запись можно закрыть пермишнами.
-
.htaccess никак не сможет помешать мне выполнить, скажем,
fopen("customer2/dbpassword.php", "r");
-
Ха! Может. Запрос-то идет с твоего сервака на втой сервак. А твой сервак видя, что запрос пришел из соседней папки (по IP) посылает его по матушке.
Потом, чтобы сработало
fopen("customer2/dbpassword.php", "r");
Нужно, чтобы скрипт, содержащий это лежал в папке firms, а этого можно недопустить настройкой пермишнов.
Я прав или нет?
-
доступ к firms можно закрыть только выставив галочку на исполнение 1,3,5,7 соответвственно возможные варианты
-
все, я уже нефига не соображаю, давай завтра. бо я уже сам запутался чо хочу. Я ХОЧУ ЧТОБЫ МОИ 2 КЛИЕНТА ЖИЛИ И ПРЦВЕТАЛИ И НЕ МОГЛИ НАВРЕДИТЬ ДРУГ ДРУГУ
-
Почему?
Что мешает разделить пермишны так:
chmod drwxr--r-- firms
chmod drwxr--rx-rt customer[$i]
?
-
Давай.
-
Во! Вариант:
.htaccess в директории firms:
order deny,allow
deny from all
order deny,allow
allow from all
deny from IP (customer2.IP)
order deny,allow
allow from all
deny from IP (customer1.IP)
Попробуй.
-
По идее задачу надо разделить на 3
1. Что нухно реализовать при помощи permissions
2. Что нухно реализовать при помощи .htaccess
3. Что нухно реализовать при помощи config.ini.php
-
В перимшнах запрети доступ у папке firms.
В php.ini поставь safe_mode
-
; Safe Mode
;
safe_mode = Off
safe_mode_exec_dir =
; Setting certain environment variables may be a potential security breach.
; This directive contains a comma-delimited list of prefixes. In Safe Mode,
; the user may only alter environment variables whose names begin with the
; prefixes supplied here. By default, users will only be able to set
; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
;
; Note: If this directive is empty, PHP will let the user modify ANY
; environment variable!
safe_mode_allowed_env_vars = PHP_
; This directive contains a comma-delimited list of environment variables that
; the end user won\'t be able to change using putenv(). These variables will be
; protected even if safe_mode_allowed_env_vars is set to allow to change them.
safe_mode_protected_env_vars = LD_LIBRARY_PATH
================================
что именно надо сделать?
-
safe_mode = On
saf_mode_exec_dir = /opt2/intercon1/httpd/htdocs/firms/*/
-
При этом в директории firms будет работать пхп?
-
Не а. Не должен.
-
уточнение: в директории firms и htdocs пхп должен работать...
-
Так. Стоп.
ЗАЧЕМ в ДИРЕКТОРИИ FIRMS РАБОЧИЙ РНР?
-
php нужен в htdocs, в firms необязательно... но речь идет о том чтобы пхп НЕ МОГ ЛЕЗТЬ в эти директории с СУБДИРЕКТОРИЙ
-
Попробуй для каждого хоста указать safe_mode_exec_dir в .htaccess
У меня после указания грабануть инфу из соседнего виртуального хоста не получилось.
-
дык все твердят что пхп забил на .htaccess
меня даже освистали специалисты на пхпклубе.нет, что мол ентого делать незя, ...но никто не смог решить и модератор отфутболил вопрос в "мертвую" конфу, мол типа тема неинтересная...
кинь твой файлик .htaccess, может мы чо друг-друга не понимаем?
-
То, что они тебя освистали - это их трудности.
В следующий раз дай им эту ссылку:
http://www.php.net/manual/en/configuration.php
Там английским по белому написано, что:
When using PHP as an Apache module, you can also change the configuration settings using directives in Apache configuration files and .htaccess files.
With PHP 3.0, there are Apache directives that correspond to each configuration setting in the php3.ini name, except the name is prefixed by "php3_".
With PHP 4.0, there are several Apache directives that allow you to change the PHP configuration from within the Apache configuration file itself.
php_value name value
This sets the value of the specified variable.
php_flag name on|off
This is used to set a Boolean configuration option.
php_admin_value name value
This sets the value of the specified variable. "Admin" configuration settings can only be set from within the main Apache configuration files, and not from .htaccess files.
php_admin_flag name on|off
This is used to set a Boolean configuration option.
Example 3-2. Apache configuration example
php_value include_path ".:/usr/local/lib/php"
php_flag safe_mode on
php3_include_path ".:/usr/local/lib/php"
php3_safe_mode on
Вот в принципе и пример из .htaccess