Сброс или восстановление пароля в MODX Revolution
Вновь столкнулся с необходимостью сброса пароля, однако на этот раз уже с MODX Revolution. Заодно посмотрим, изменилось ли что-нибудь в хранении пользователей в MODX Revolution по сравнению с предыдущей версией. Сразу оговорюсь, в моем распоряжении сейчас версия Revolution 2.2.14.
Как мы выяснили раньше данные пользователя хранятся в таблице префикс _manager_users и префикс_user_attributes. Что касается последней, то она не изменилась. А вот имя и пароль теперь хранятся в таблице под названием:
префикс _users
Помимо самого названия таблицы изменился метод генерации пароля. На данный момент это hashing.modPBKDF2 , найти сам метод можно в поле hash_class таблицы префикс_users. Данный метод шифрования использует дополнительный salt, что считается более безопасным. Однако за эту безопасность приходится платить и в данном случае мы не будем использовать готовые пароли, потому что в этом процессе используется не только salt, но так же количество итераций и другие параметры. Поэтому мы пойдем другим путем.
Для смены пароля в MODX Revolution мы сначала поменяем метод, отвечающий за генерацию пароля, после чего поменяем пароль и в конце вернем дефолтный метод. Для смены метода шифрования в поле hash_class нужного нам пользователя запишем значение hashing.modMD5, а в поле password запишем 5f4dcc3b5aa765d61d8327deb882cf99 (хеш слова password). Теперь мы можем зайти в админку используя имя пользователя и слово password в качестве пароля.
Если у нас нет доступа к базе через визуальный редакторы, то первые два пункта можно выполнить одной единственной командой MySQL:
UPDATE modx_users SET hash_class = 'hashing.modMD5', password = MD5('password') WHERE username = 'пользователь';
Теперь нам необходимо восстновить метод генерации паролей по умолчанию, так как он более надежный. Для этого воспользуемся пакетом pbkdf2Convert, который устанавливаем плагин, который проверяет, какой именно метод шифрования используется, и в случае, если это не hashing.modPBKDF2 изменяет метод и перекодируем пароль в modPBKDF2. При желании пакет pbkdf2Convert можно оставить в системе.
Комментарии (0)