Как убрать конфиденциальные файлы из папки public_html?

( 1 Vote )

Рассмотрен способ перемещения конфиденциальных файлов из папки public_html на примере файла configuration.php

Одна из проблем безопасности Joomla! – защита от прямого доступа из Интернета файлов, содержащие исполняемый код или конфиденциальные данные, которые размещены в папке public_html.

Существуют различные способы защиты таких файлов, но большинство из них не оптимальны. Многие пользователи и группы разработчиков, таких как Gallery2 и Apache.org настоятельно рекомендуем не размещать внутри папки public_html  файлы, которые содержат конфиденциальные данные.

Следующий метод самый простой и элегантный способ защиты таких файлов, которые по каким-либо причинам, должны храниться в public_html.

В этом примере, мы защитим файл configuration.php, пожалуй, наиболее конфиденциальный файл любого сайта на Joomla!

Даже в том случае, когда веб-сервер по каким либо причинам (например, из за неправильной настройки) покажет содержимое PHP файлов, никто не сможет увидеть содержимое настоящего файла конфигурации.

Вот что нужно сделать:

1. Переместите configuration.php в безопасный каталог вне public_html, и переименуйте его (например joomla.conf)

2. Создайте новый configuration.php файл, содержащий только следующий код:

require( dirname( __FILE__ ) . '/../joomla.conf' );

3. Убедитесь в том, что новый configuration.php файл защищен от записи, что-бы его нельзя было изменить через интерфейс администратора.

4. Теперь, если вам необходимо изменить настройки конфигурации Joomla!, сделайте это вручную в файле joomla.conf. Это немного неудобно, но зато надёжно.

Важные замечания!

В приведенном выше примере кода не должно содержаться пустых строк или каких-либо знаков (включая пробелы), перед началом тега .

В ином случае Вы можете увидеть вот такие ошибки:

Warning: Cannot modify header information - headers already sent by (output started at
/home/xxxxx/public_html/configuration.php:2) in /home/xxxxx/public_html/index.php on line 250

Обратите внимание, что в приведенном выше коде отсутствует закрывающий тег ?>

Это сделано умышленно для того, чтобы любые строки в конце файл не интерпретировались как HTML, что приведет к ошибке.

Метод, при котором упускается закрывающий PHP тег,  является признанным для предотвращения таких конфликтов.

Это работает, потому что PHP автоматически останавливает интерпретатор в конце каждого файла.

Закрывающий тег PHP нужно ставить в том случае, когда в одном и том же файле после PHP кода идет HTML код.
 


Добавить комментарий


Защитный код
Обновить

Рекомендую!

discwithbox"Joomla - Профессиональный сайт за один день"

"86 видеоуроков, 12 часов 46 минут экранного видео посвящены лучшей системе для создания сайтов - Joomla!"

Vip-доступ

Для того, чтобы скачивать видеоуроки, Вам необходимо получить VIP доступ

RSS лента новых уроков

Кликните по иконке, чтобы получать новые уроки по RSS каналу

RSS-подписка на новые уроки сайта Joomla-School.com

Или введите email, чтобы получать ссылки на новые уроки в свой ящик

Добавить в Google Reader

Читать в Яндекс.Ленте

Новые комментарии

  • Исправлено. После обновления файл router.php был изменен и оттуда исче... Далее...
  • Обновился до jommla! 2,51. Статьи, которые создаю после этого, все не ... Далее...
  • Действительно, сильная штука, сложновата немного, да и ещё с моими зна... Далее...
  • Звучит не плохо ;-) Админ если подскажешь где руссификацию найти под н... Далее...
  • тогда нужно смотреть непосредственно на вашем сайте и выяснять что не ... Далее...
  • я нашла этот плагин но там стоит 1 он просто открывается по другому ок... Далее...
  • тут такого нет в php админке! вот что имеется: extension_id name type ... Далее...
  • возможно у вас отключен плагин авторизации зайдите в phpmyadmin, выбе... Далее...

Сообщения с форума

Сейчас на сайте

Новые пользователи:
  • автодорог
  • Виталий
  • 1tbc.com
  • William
  • UrVen
Всего пользователей: 7834

Реклама