×

Warning

JUser: :_load: Unable to load user with ID: 355

Защита административной панели от несанкционированного доступа

Written by | 01 April 2011 | Published in 2011 April
Все знают, что определить на каком движке построен сайт можно по админке, просто зайти на адрес /administrator или /admin. А что можно сделать? переименовать? не получится, это повлияет на работу компонентов, которы загружают требуемые файлы, например движок магазина VirtueMart под Joomla. Интересно, что решение о защите пришло случайно, при рассмотрении файлов новой версии Joomla 1.5.х, а конкретно /administrator/includes/define.php. В нем константам присваиваются пути поиска конфигурационного файла и директорий.

define( 'JPATH_ROOT', implode( DS, $parts ) );

define( 'JPATH_SITE', JPATH_ROOT );
define( 'JPATH_CONFIGURATION', JPATH_ROOT ); <- - - - - - - - - - - - - - - - - Интересная переменная. А что если её поменять???
define( 'JPATH_ADMINISTRATOR', JPATH_ROOT.DS.'administrator' );

А если эту переменную поменять, то аход а админку станет невозможным. Ну это хорошая защита, только как работать с сайтом? Выход очень прост.

Делается файл в директории /administrator/ с любым именем, которое знаете только вы, например как зовут вашу кошку? Пусть будет muska.php, в нем код который включает разрешение на доступ к админке, например такой

setcookie('OHO_CAMOE'','secret_value');

Это наш ключ, теперь делаем замок.Замяем строку с конфигурацией в файле /administrator/includes/define.php

Было
define( 'JPATH_CONFIGURATION', JPATH_ROOT );
Стало
if (@$_COOKIE['OHO_CAMOE']=='secret_value') define( 'JPATH_CONFIGURATION', JPATH_ROOT );

Итак, для чего было это сделано:

  • Был поставлен замок на конфиг при входе в админку. Название файла с ключом знаете только Вы, и при входе сначала вызываете ключевой файл (muska.php в нашем примере), а потом спокойненько заходите в админку по адресу /administrator/muska.php .
  • Остальным, непрошенным гостям не покажет ничего. Просто и надёжно, как автомат Калашникова.

Всем удачи в работе и изучении Joomla!

Tagged under Russian

Разработка компонентов, модулей, сайтов на CMS Joomla.