4.4 Восстановление паролей в CMS
Потеря доступа к административной панели — одна из самых частых проблем при управлении сайтом. Это может быть вызвано забытым паролем, ошибкой пользователя или даже злонамеренными действиями. В этой статье мы рассмотрим все возможные способы восстановления пароля в популярных CMS.
Требования
- Доступ к услуге хостинга, виртуального сервера или выделенного сервера, где размещается сайт;
- CMS: WordPress, Joomla, OpenCart, PrestaShop;
- Доступ в панель phpMyAdmin или к административному email.
Обратите внимание: для восстановления доступа с помощью почты в Вашей CMS должен быть корректно настроен почтовый сервис для отправки писем.
WordPress
Изменить пароль для WordPress можно тремя способами: с помощью встроенных механизмов восстановления доступа, через phpMyAdmin или посредством файла functions.php активной темы.
Восстановление методом отправки письма на email
Перейдите на https://<YOUR_DOMAIN>/wp-login.php?action=lostpassword
и введите Ваш email или логин. Вам на почту будет отправлено письмо с инструкциями для восстановления пароля.
Восстановление по средствам phpMyAdmin
- Зайдите в phpMyAdmin, выберите базу сайта и выделите таблицу
wp_users
;
- Нажмите «Изменить» пользователя
admin
(пользователь может называться и иначе);
- В поле
user_pass
выберите функциюMD5
, и введите новый, надёжный пароль;
- В конце страницы нажмите кнопку “Вперёд” для применения нового пароля.
Альтернативно сменить пароль можно с помощью sql-запроса. Для этого в phpMyAdmin выберите таблицу Вашей базы данных и откройте вкладку “SQL”:
После чего введите запрос:
UPDATE wp_users SET user_pass = MD5('<PASSWORD>') WHERE user_login = '<ADMIN_USER>';
Обратите внимание: необходимо заменить <PASSWORD>
и <ADMIN_USER>
на желаемый пароль и имя Вашего пользователя для админ панели.
Восстановление через файл functions.php
Откройте менеджер файлов и перейдите в директорию с темами Вашего сайта ~/www/YOUR.DOMAIN/wp-content/themes/YOUR_THEME/
откройте файл functions.php
и
вставьте в самое начало, после открывающего тега <?php
следующую строку:
wp_set_password('<PASSWORD>', ID);
Перейдите в административную панель Вашего сайта и авторизуйтесь используя новый пароль.
Обратите внимание: замените PASSWORD
на желаемый пароль, а ID
на id пользователя.
После входа с новым паролем обязательно удалите добавленную строку.
Joomla
Joomla — одна из самых популярных систем управления контентом, поэтому ситуация с утратой административного пароля возникает нередко. К счастью, вернуть доступ можно несколькими способами: от стандартной функции «Забыли пароль?» на странице авторизации до ручного изменения записи пользователя в базе данных. Ниже мы разберём самые надёжные методы, начиная с восстановления через phpMyAdmin.
Восстановление по средствам phpMyAdmin
-
Зайдите в phpMyAdmin;
-
Выберите базу данных Вашего сайта и выделите таблицу:
*__users
;
- Для пользователя admin в поле
password
вставьте хеш-парольd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
это значение установит в качестве пароляsecret
;
- Следующим шагом необходимо перейти в административную панель Вашего сайта за адресом
YOUR.DOMAIN/administrator/
и авторизуйтесь с новым паролем;
5 Последним шагом будет зайти в настройки административной панели и сменить пароль на более надёжный.
OpenCart
OpenCart — популярная e-commerce-платформа с открытым исходным кодом. Потеря доступа к административной панели может привести к простоям магазина и упущенным заказам, поэтому критично быстро вернуть контроль над учётной записью администратора. Один из самых простых и безопасных способов — воспользоваться встроенной функцией сброса пароля, которая отправляет одноразовую ссылку на зарегистрированный e-mail. Ниже подробно разберём, как это сделать.
Восстановление методом отправки письма на email
Перейдите на административную страницу Вашего сайта – YOUR.DOMAIN/admin
и нажмите «Забыли пароль?» после чего введите Ваш email. Проверьте ящик Вашего почтового адреса.
Обратите внимание: для восстановления доступа с помощью почты в Вашей CMS должен быть корректно настроена служба для отправки писем.
Восстановление по средствам phpMyAdmin
- Зайдите в phpMyAdmin;
- Выберите Вашу базу данных и нажмите на кнопку SQL для sql-запроса:
- Добавьте следующий sql-запрос, заменив при этом
PASSWORD
на желаемый пароль:
UPDATE `*_user` SET `password` = md5('PASSWORD') WHERE `username` = 'admin'
Не забудьте отправить запрос:
PrestaShop
PrestaShop — популярная CMS для электронной коммерции с открытым исходным кодом. Потеря доступа к административной панели может парализовать магазин и привести к потере заказов, поэтому крайне важно как можно быстрее восстановить контроль над учётной записью администратора. Самый простой способ — воспользоваться встроенной функцией сброса пароля, но у вас всегда есть резервные методы через phpMyAdmin или аварийный скрипт/CLI.
Восстановление через e-mail
- Перейдите на страницу входа в административную панель:
https://YOUR.DOMAIN/admin123/
- Нажмите I forgot my password
- Введите e-mail, привязанный к учётной записи администратора
- Проверьте почту и перейдите по одноразовой ссылке для установки нового пароля
Обратите внимание: замените YOUR.DOMAIN
, admin123
на фактические данные вашего сайта.
Внимание: функция работает только при корректно настроенном SMTP или другом почтовом сервисе сайта.
Восстановление через phpMyAdmin
Для версий PrestaShop ≤ 1.6.x (старый крипто-алгоритм — MD5)
-
Найдите
cookie-key
: откройте файлconfig/settings.inc.php
и скопируйте значение константы_COOKIE_KEY_
. -
Сгенерируйте MD5-хэш нового пароля командой:
echo -n '<COOKIE_KEY><NEW_PASSWORD>' | md5sum
Обратите внимание: замените <COOKIE_KEY>
и <NEW_PASSWORD>
на реальный cookie-key из шага 1 и желаемый пароль.
- Перейдите в phpMyAdmin, откройте таблицу
ps_employee
, выберите строку вашего пользователя и нажмите Изменить.
- Замените значение поля
passwd
на MD5-хэш из шага 2. - Сохраните изменения и войдите в административную панель с новым паролем.
Подсказка: можно сразу выполнить следующий SQL-запрос:
UPDATE ps_employee
SET passwd = MD5('<COOKIE_KEY><NEW_PASSWORD>')
WHERE email = 'admin@example.com';
Для версий PrestaShop ≥ 1.7.x (новый крипто-алгоритм — bcrypt)
-
Найдите
cookie-key
: откройте файлapp/config/parameters.php
и скопируйте значение параметраcookie_key
. -
Сгенерируйте bcrypt-хэш нового пароля командой:
php -r "echo password_hash(<NEW_PASSWORD>, <COOKIE_KEY>);"
Обратите внимание: замените <COOKIE_KEY>
и <NEW_PASSWORD>
на реальный cookie-key из шага 1 и желаемый пароль.
-
Перейдите в phpMyAdmin, откройте таблицу
ps_employee
, найдите запись вашего пользователя и нажмите Изменить. -
Замените значение поля
passwd
на bcrypt-хэш из шага 2. -
Сохраните изменения и войдите в административную панель с новым паролем.
Подсказка: можно сразу выполнить такой SQL-запрос:
UPDATE ps_employee
SET passwd = '$2y$10$…<bcrypt_hash>…'
WHERE email = 'admin@example.com';
Замените '$2y$10$…<bcrypt_hash>…'
на фактический хэш, а admin@example.com
— на e-mail вашего аккаунта.
Восстановление через CLI или аварийный скрипт
PrestaShop ≥ 1.7.x — Symfony Console
-
Подключитесь к серверу по SSH.
-
В корне магазина выполните команду для создания нового администратора:
php bin/console app:add-admin \
--email=admin@example.com \
--firstname=Admin \
--lastname=User \
--password='StrongP@ssw0rd' \
--profile=1
Что делает команда:
- создаёт пользователя с e-mail
admin@example.com
; - задаёт имя/фамилию (можно изменить);
- устанавливает пароль StrongP@ssw0rd (замените на свой);
- присваивает профиль 1 («SuperAdmin»).
- Авторизуйтесь в административной панели под новым аккаунтом.
PrestaShop ≤ 1.6.x — аварийный скрипт (Emergency Admin)
- Скачайте файл
emergency_admin.php
из официальной темы сообщества. - Загрузите файл в корень сайта через FTP/SSH.
- Откройте в браузере
https://YOUR.DOMAIN/emergency_admin.php
, заполните форму (e-mail и новый пароль). - После сообщения «Admin account created» немедленно удалите
emergency_admin.php
с сервера:
rm /path/to/prestashop/emergency_admin.php
Обратите внимание: файл остаётся уязвимостью, пока не будет удалён. Убедитесь, что он отсутствует после успешного входа.
Рекомендации по безопасности
- Сразу после входа смените пароль на длинный, уникальный и включите 2FA (если модуль доступен).
- Убедитесь, что почтовая система отправляет письма без ошибок — это упростит восстановление в будущем.
- Ограничьте доступ к каталогу /admin* по IP или через basic-auth.
- Регулярно делайте резервные копии базы данных и проверяйте логи на подозрительную активность.
Распространённые ошибки
Проблема | Решение |
---|---|
Не приходит письмо на email | Проверьте SMTP, спам-фильтр, используйте phpMyAdmin |
Хеш не работает (Joomla/OC) | Используйте правильный алгоритм (salt + md5/sha1) |
Не видно таблиц в базе | Убедитесь, что выбрана правильная база данных |
Забыт email и логин | Найдите через SELECT * FROM users в БД |
Официальная документация