Инструменты пользователя

Инструменты сайта

Writing /home/wiki.santafox/wiki.santafox.ru/data/cache/b/b2d526b05243be6a20154d30944a54d6.metadata failed

hack:system_control

Опять я со своей паранойей Решил сделать контроль входа (предполагаемыми злоумышленниками) в админку.

Итак, ядро, файл kernel.class.php ищем функцию function priv_admin_register (примерно в районе 1750 строки)

Заменяем ВСЮ функцию на эту:

Код:

function priv_admin_register($login, $password)
    {
        if ((!empty($login)) && (!empty($password)))
        {
            if (isset($_SERVER['HTTP_HOST']))
                $httpHost = $_SERVER['HTTP_HOST'];
            else
                $httpHost = "unknown";

            $id_user = $this->priv_session_admin_save($login, $password);
            if ($id_user == -1)
            {
                $_SESSION['vars_kernel']['errore_register'] = '[#start_login_not_exist#]';
                    if (defined('EMAIL_FOR_ERRORE'))
                    {
                        if ($this->pub_is_valid_email(EMAIL_FOR_ERRORE))
                            $this->pub_mail(array(EMAIL_FOR_ERRORE), array(""), EMAIL_FOR_ERRORE, "", $httpHost, "Неудачная попытка входа в админку сайта ".$httpHost." Вводимый логин/пароль ".$login."/".$password);
                    }
            }

            if ($id_user == -2)
            {
                $_SESSION['vars_kernel']['errore_register'] = '[#start_login_failed_entered#]';
                    if (defined('EMAIL_FOR_ERRORE'))
                    {
                        if ($this->pub_is_valid_email(EMAIL_FOR_ERRORE))
                            $this->pub_mail(array(EMAIL_FOR_ERRORE), array(""), EMAIL_FOR_ERRORE, "", $httpHost, "Неудачная попытка входа в админку сайта (один админ уже работает) ".$httpHost." Вводимый логин/пароль ".$login."/".$password);
                    }
            }

            if ($id_user > 0)
            {
                $arr_groups = $this->priv_session_groups_save($id_user);
                if (!empty($arr_groups))
                    $this->priv_session_main_admin_save($arr_groups);

                if (defined('EMAIL_FOR_ERRORE'))
                    {
                        if ($this->pub_is_valid_email(EMAIL_FOR_ERRORE))
                            $this->pub_mail(array(EMAIL_FOR_ERRORE), array(""), EMAIL_FOR_ERRORE, "", $httpHost, "Пороизведен вход в админку сайта ".$httpHost."Логин админа ".$login);
                    }
            }
        }
        $this->pub_redirect_refresh_global("/admin/");
    }

Сохраняем, что имеет? На адрес, который указан в админке, в Глобальных настройках в строке Адрес электронной почты для ошибок выполения MySQL запросов

1. При удачном входе а в дминку, вы получаете письмо, мол Пороизведен вход в админку сайта mysite.ru Логин админа Admin.

Вариантов применения мы нашли 2 контороль за админами (кто когда работал) и внезапный доступ, если админ 1, он на Гавайях и у него сперли пароли…

2. При неудачном входе (как вариант попытка перебора пароля) вы получите письмо, мол Неудачная попытка входа в админку сайта mysite.ru Вводимый логин/пароль login/password

Т.е. помимо того что вы понимаете, что кто-то пытается ломать админку вы так же будете знать КАК и какими логинами\паролями он пытается это делать. Как-то так, всем удачи, и чтоб вас никогда не ломали

Всем удачи!

Автор: http://arteshuk.tk

hack/system_control.txt · Последние изменения: 2012/06/27 07:30 — abasia