Блог/Сброс пароля

Сброс или восстановление пароля в Modx Evolution

Автор: Кудашев Сергей

В очередной раз столкнулся с проблемой со входом в админку: забыл пароль от тестового сайта. Так как сталкиваюсь с этим уже не первый раз решил записать решение сюда, чтобы потом не искать.

Перед тем, как будет произведена процедура изменения пароля, что нужно знать о системе хранения паролей пользователей в ModX. В данной системе управления есть два типа пользователей, это веб-пользователи, пользователи которые зарегистрированы на сайте, но не имеют доступа к панели управления, и пользователи самой системы управления, которые имеют доступ к панели управления (manager users). Нас интересует как раз вторая группа.

Нас будет интересовать две таблицы, первая это

префикс_manager_users

в которой хранится имя пользователя и хеш пароля. Вторая таблица, которая нас будет интересовать, это

префикс_user_attributes

в которой хранятся атрибуты пользователя.

В таблице префикс_user_attributes нас будет интересовать два поля, это blockeduntil и failedlogincount. Из названий примерно понятно за что они отвечают, однако поясню. Когда мы пробуем залогинится с неверным паролем, система считает количество неверных попыток, которые записываются в поле failedlogincount. Когда количество отметок достигнет критического (по умолчанию это 3 попытки) в поле blockeduntil будет записано время до которого данный пользователь будет заблокирован. Так что, даже если мы поменяем пароль, то зайти все равно не сможем. Так что, если мы каким-то образом заблокировали пользователя большим количеством попыток входа в систему, первое что надо сделать, это очистить эти два поля. С этим разобрались, едем дальше.

В таблице префикс_manager_users хранится имя и хеш пароля, полученный через функцию MD5. По данному хешу можно попровать восстановить пароль, так как в сети есть базы хешей, но сейчас нам это не интересно. Нам надо быстро сбросить пароль и снова получить доступ к админке. Для этого воспользуемся или функцией md5() в любом из языков программирования или воспользуемся хешем слова password (5f4dcc3b5aa765d61d8327deb882cf99). В поле password таблицы префикс_manager_users запишем либо сгененрированный нами хеш или хеш приведенный выше. После этого мы можем свободно зайти в админку используя нашего пользователя и слово password в качестве пароля.

Еще такой момент, что мы будем делать при отсутствии веб-интерфейса к MySQL, о котором я упоминал про то, как сбросить AUTO_INCREMENT. Решение простое, воспользуемся синтаксисом MySQL.

UPDATE `база_данных`.`префикс_manager_users` SET `password` = MD5('пароль') WHERE `префикс_manager_users`.`username` = 'имя пользователя';
Тэги: MODX, Evolution
Просмотров: 1838
Комментариев:

Комментарии (0)