Задача примитивная: пароль в админке не помним / не хотим сбрасывать, хостинг свой. Не надо ключей, GET-параметров и файлов в core/config. Кидаем в manager/ один php, имя — случайные 20 знаков. Открыли URL — вы уже внутри. Поработали — файл с сервера стёрли. Это не «система доступа на годы», это спичка.
Имя файла и есть секрет. Не login.php, не admin.php, не 1.php. Двадцать символов латиницы/цифр, никто это не угадает, пока сами не отправите ссылку в чат.
manager/XxXxXxXxXxXxXxXxXxXx.php
Содержимое — вход под первым sudo-пользователем (обычно id=1) и редирект в manager. Пароль в modx_users не трогаем.
<?php
require dirname(__DIR__) . '/config.core.php';
require MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('mgr');
$user = $modx->getObject('modUser', 1);
if (!$user || !$user->get('active')) { exit; }
$modx->user = $user;
$modx->getUser('mgr', true);
$user->addSessionContext('mgr');
$modx->sendRedirect(MODX_MANAGER_URL);
Открываете:
https://site.ru/manager/XxXxXxXxXxXxXxXxXxXx.php
Браузер получает сессию mgr, вас кидает на обычный /manager/. Форма логина даже не показывается.
Когда зашли и сделали что нужно — удалите файл. Оставили лежать «на всякий» — это уже не временное решение, а дырка. Новый заход через месяц: залили заново, другое имя из 20 знаков.
Если хостинга нет и файла закинуть некуда — тогда только сброс пароля через MySQL.
Комментарии
Комментарии (0)