The Joomla! ® Community Magazine

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

Written by Dmitry Strizhov | Friday, 01 April 2011 00:00 | Published in 2011 April
Level of Difficulty:Intermediate Все знают, что определить на каком движке построен сайт можно по админке, просто зайти на адрес /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 6286 times
Tagged under Russian
Dmitry Strizhov

Dmitry Strizhov

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

Leave a comment

Make sure you enter the (*) required information where indicated.

[b] [i] [u] [s] [url] [quote] [code] [img]   

Comments (2)

  • avatar
    • 0
    • 0
    jumancy

    У меня Joomla 1.6, че то не получилось.
    при вводе
    /administrator/muchka.php ничего не открывает
    /administrator/kljuch открывает сайт
    Что делать с index.php в директории administrator?
    Подробно можете описать?

Language Switcher

Current Articles

JCM international articles

Grab the Joomla! Community Banners! Spread the word!

Recommend us on Google+