Страница 1 из 2

Ограничить файловый доступ для каждого сайта

Добавлено: 29 ноя 2021, 01:03
KoreshS
Мне стыдно такое спрашивать. У меня такое ощущение, это та тема баян и его скоро порвут.
Но я перерыл справку и форум. Я везде вводил слова open_basedir и .htaccess но ни в форуме ни в справке нет ответов. В форуме встречал такие вопросы, но так и не увидел ответы на эти вопросы.

В OpenServer очень много сайтов, каждый из которых либо зараженный либо новый. Да в общем то не хотелось бы чтобы зараженые сайты еще и по Моим документам лазили б или бы заражали бы другие сайты.
Ограничение доступа для сайта модный тренд, тот жe DenoJS внедрил ограниченный доступ.
Я сохраняю в сайте файл .htaccess:
php_value open_basedir 'c:/OpenServer/domains/MySite/'
или
php_value open_basedir '%SystemDrive%/OpenServer/domains/MySite/'
или
php_value open_basedir '%SystemDrive%\OpenServer\domains\MySite\'
или
php_value open_basedir '%HOMEDRIVE%/OpenServer/domains/MySite/'
Ни один из вариантов не работает.
Подскажите как правильно конфигурировать файл .htaccess.
Конечно же если бы Руководство сайта бы добавило в справку инфу об моем вопросе. Так как такой вопрос относится только к OpenServer.
_________________
УРААААААААААААААААААААА.
В файле .htaccess можно написать так:

.htaccess:
php_value open_basedir 'C:/OpenServer/domains/orelmusizo/'

Очень прошу Руководство внести это в справочный раздел!!!!!!!! :D :D :D :D :D :D :lol: :lol: :lol: :lol:

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 29 ноя 2021, 22:01
SagePointer
KoreshS писал(а): 29 ноя 2021, 01:03 open_basedir и .htaccess
Потому что это редкостная глупость. Класть директиву, ограничивающую доступ скриптов, в файл, доступный при этом для записи этим самым скриптам... Недолго она там простоит, если кто-то реально захочет её обойти :lol:
Молчу уже, что директива эта никак не влияет на безопасность, она только для дополнительной подстраховки:
https://www.php.net/manual/ru/ini.core. ... en-basedir
Предостережение
open_basedir - это просто дополнительная подстраховка, которая никоим образом не является всеобъемлющей и поэтому на неё нельзя полагаться, когда речь идёт о безопасности.

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 17:14
KoreshS
SagePointer писал(а): 29 ноя 2021, 22:01 https://www.php.net/manual/ru/ini.core. ... en-basedir
Предостережение
open_basedir - это просто дополнительная подстраховка, которая никоим образом не является всеобъемлющей и поэтому на неё нельзя полагаться, когда речь идёт о безопасности.
Так так: допустип файл находится в той же папке что и сам сайт и его можно перезаписать.
А мы можем положить этот файл на уровень выше в папку domains?
И тогда мы в этот файл пишем все директориииии ..... списком.
Вы правы на уровень выше класть нельзя, а то согласно этому списку вирус получит доступ к другому сайту из этого списка.
. Ну хорошо, А можно ограничить доступ к этому файлу .htaccess на уровне PHP ?

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 17:27
KoreshS
TheAndrey писал(а): 29 ноя 2021, 21:44 Для сайтов с вирусами - только виртуальная машина.
Допустим 20 сайтов с вирусами из 40 проектов.
По Вашему надо создавать 20 (или 40) виртуальных машин?

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 17:55
KoreshS
DelphinPRO писал(а): 30 ноя 2021, 02:21 я не пойму, тебе лишь бы языком потрепать или что? По-моему я достаточно ясно изложил суть проблемы.
Специально для тебя, одарённого, нагуглил адекватное решение – оберни всё значение open_basedir в кавычки, и пиши нормальные символы (c:) вместо извращений.
Вы правы, такая директива работает, но она работает в половине случаев.
Если писать в директиве только ОДИН путь с указанием диска и двоеточием, то путь работает.
Если указать 2 пути с разделителем двоеточием, то путь НЕ работает.
Если указать 2 пути с разделителем двоеточием но и в каждом пути заменить двоеточие на & #58; то путь опять работает. Все зависит от частного случая.
Вы правы, на 100% я до конца не разобрался. Ну так с другой стороны, эта директива работает в половине случаев, зачем мне разбираться на 100%, когда просто нужно посмотреть в справку OpenServer, скопировать строку, заменить названия.
Вы же когда в парикмахерскую идете, вы же не учитесь перед этим мастерству стрижки, чтобы Вас постригли?
Я же о том и говорю что эту инфу надо добавить в справку, чтобы было просто и ясно для всех.
Я не разобрался на 100%, ну а как я бы мог разобраться если эта инфа доступна только в одном единственном месте на PHP сайте, и то только как справочная инфа. Без разъяснений о частных случаях работы директивы.
Может я ошибся что надо в справку занести не мой пример с & #58;, может надо там написать про точку с запятой. Потому как про точку с запятой ни где не написано, кроме как в одном единственном месте самой справке PHP. А в справку OS я многократно заходил и искал, я по всему сайту искал это.
Как догадаться? В справке PHP основные базовое описание только. А примеры, и особые случаи там не встречаются. Все пользуются яндексом и гуглом.

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 18:26
KoreshS
SagePointer писал(а):
TheAndrey писал(а):
Но ведь в .HTACCESS так же можно указать запрет на доступ к этому же файлу.
<Files .htaccess>
 order allow,deny
 deny from all
 </Files>

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 19:05
SagePointer
KoreshS писал(а): 30 ноя 2021, 17:55 Я же о том и говорю что эту инфу надо добавить в справку, чтобы было просто и ясно для всех.
Зачем в справку добавлять информацию о фуфле, если даже официальная документация PHP гласит, что директива не имеет ничего общего с безопасностью и никакую безопасность не обеспечивает.
С вашего Deny from all орнул, с чего вы взяли, что она магическим образом запретит сторонним процессам запись в этот файл? :lol:

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 21:17
KoreshS
SagePointer писал(а): 30 ноя 2021, 19:05
С вашего Deny from all орнул, с чего вы взяли, что она магическим образом запретит сторонним процессам запись в этот файл? :lol:
О каком стороннем сервисе Вы говорите? (приведите пример, детальней разъясните пожалуйста)

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 30 ноя 2021, 22:03
SagePointer
KoreshS писал(а): 30 ноя 2021, 21:17 О каком стороннем сервисе Вы говорите? (приведите пример, детальней разъясните пожалуйста)
Директивы Allow/Deny действуют ТОЛЬКО на Апач и ТОЛЬКО для разрешения/запрета обработки входящих HTTP-запросов по определённым критериям. Больше НИКАКОЙ ДРУГОЙ функциональности они в себе не несут. СОВСЕМ НИКАКОЙ.

Re: Ограничить файловый доступ для каждого сайта

Добавлено: 08 дек 2021, 01:31
KoreshS
SagePointer писал(а): 30 ноя 2021, 18:44 Нельзя. А если средствами файловой системы запретите запись в .htaccess, это не воспрепятствует созданию нового .htaccess в поддиректории с правилами, перекрывающими старые.
Не уже ли все так безнадежно. Почему разработчики PHP не делают изоляцию?!
Я разместил в папке сайта файл php.ini
и разместил в нем

[PHP] 
open_basedir          = "C:/OpenServer/domains/MySite"
disable_functions = exec,passthru,php_uname,popen,proc_open,shell_exec,show_source,system
Файл php.ini не читается в директории сайта.
А попытки внести эту директиву в папку где хранится сам модуль PHP.
То при перезапуске модуля, файл перезаписывается по дефолту.
хотя тут https://www.php.net/manual/ru/configuration.file.php написано что php всегда ищет конфигурацию в текущей папки скрипта.

Неужели все так безнадежно? и что надо включить чтобы файл конфигурации искался в текущей папке сайта.
Я искал эту директиву, ни где нет описания, как отключить или включить поиск конфигурации в текущей папке.