Привет всем!
В частной беседе зашел разговор по теме...
Подумалось, что, возможно, инфа будет кому-нить полезна! Поэтому размещаю рецептик тут..
----------------
В сети можно найти несколько способов защиты конфигурационных файлов от публичного доступа, но большинство из них не работают или работают не так, как хотелось бы.
Действенный способ защитить файл configuration.php - это просто переместить его из корневой папки "этажом" или несколькими выше. При этом надо заметить, что перед этим должны быть сделаны определенные изменения. Ниже - пошаговые инструкции о том, как этого добиться..
Шаг 1: Копирование(! - пока только копирование) configuration.php в безопасный каталог, отличный от "public_html" ("этажом" или двумя выше!).
Шаг 2: Надо внести правки в 2 файла /administrator/includes/defines.php и /includes/defines.php, а точнее, изменить константу:
define( 'JPATH_CONFIGURATION', JPATH_ROOT);
Если, например, вы хотите переместить файл на один(!) уровень вверх и в папку с названием "test", то константа будет выглядеть следующим образом:
define( 'JPATH_CONFIGURATION', JPATH_ROOT.'/../test');
Если на два(!) уровня вверх и в папку с названием "test2", то константа будет выглядеть следующим образом:
define('JPATH_CONFIGURATION', JPATH_ROOT.'/../../test2');
Шаг 3: Установить права доступа на файл configuration.php CHMOD=444, т.е. сделать файл не доступным для записи и выполнения для всех.
Шаг 4: Удалить файл configuration.php из корня сайта (можно сначала, чтобы проверить п.5, просто переименовать файл, например, так: configuration2.php. А после выполнения п.5 - удалить его).
Шаг 5: Проверить доступность сайта и админки.
Шаг 6: Если нужно изменить конфигурацию, то сделать это вручную в новом configuration.php.
Примечания:
1. Если использовать этот метод, то никто не сможет увидеть содержимое файла реальной конфигурации! И это проверенный и реально хороший метод защиты от злонамеренных атак.
2. Перед обновлением Joomla лучше (дабы потом не совершать лишних телодвижений ) снова скопировать файл configuration.php в корень сайта и задать ему права CHMOD=644. После обновления выполнить шаги 1-4.
3. Описанный метод (при точном выполнении пп выше) работает всегда! Если у вас не так, то либо где-то напортачили, либо см. настройки на стороне хостера, а именно, путь к папке, ограничивающей PHP-функции (open_basedir).
----------------
Всем успехов и хороших выходных!
Сообщение отредактировал laRus: 16 April 2016 - 11:59