The Joomla! Community Magazine™

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

Written by | Friday, 01 April 2011 00:00 | 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!

Read 10974 times
Tagged under Russian
Dmitry Strizhov

Dmitry Strizhov

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

Language Switcher

Current Articles

JCM international articles

Join us at the Joomla! World Conference 2014, Grand Oasis Cancun, Mexico November 7-9, 2014

Grab the Joomla! Community Banners! Spread the word!

Recommend us on Google+