Вход в manager MODX одним php-файлом

Задача примитивная: пароль в админке не помним / не хотим сбрасывать, хостинг свой. Не надо ключей, 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)



Разрешённые теги: <b><i><br>Добавить новый комментарий: