4.4 Восстановление паролей в CMS

The Host Banner

Потеря доступа к административной панели — одна из самых частых проблем при управлении сайтом. Это может быть вызвано забытым паролем, ошибкой пользователя или даже злонамеренными действиями. В этой статье мы рассмотрим все возможные способы восстановления пароля в популярных CMS.

Требования

Обратите внимание: для восстановления доступа с помощью почты в Вашей CMS должен быть корректно настроен почтовый сервис для отправки писем.

WordPress

Изменить пароль для WordPress можно тремя способами: с помощью встроенных механизмов восстановления доступа, через phpMyAdmin или посредством файла functions.php активной темы.

Восстановление методом отправки письма на email

Перейдите на https://<YOUR_DOMAIN>/wp-login.php?action=lostpassword и введите Ваш email или логин. Вам на почту будет отправлено письмо с инструкциями для восстановления пароля.

wp-forget-password

Восстановление по средствам phpMyAdmin

  1. Зайдите в phpMyAdmin, выберите базу сайта и выделите таблицу wp_users;

wp-set-password-phpMyAdmin

  1. Нажмите «Изменить» пользователя admin(пользователь может называться и иначе);

wp-change-password-in-db

  1. В поле user_pass выберите функцию MD5, и введите новый, надёжный пароль;

wp-set-new-password

  1. В конце страницы нажмите кнопку “Вперёд” для применения нового пароля.

confirm

Альтернативно сменить пароль можно с помощью sql-запроса. Для этого в phpMyAdmin выберите таблицу Вашей базы данных и откройте вкладку “SQL”:

wp-open-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-change-password-via-functionPHP

wp_set_password('<PASSWORD>', ID);

Перейдите в административную панель Вашего сайта и авторизуйтесь используя новый пароль.

Обратите внимание: замените PASSWORD на желаемый пароль, а ID на id пользователя.


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

Joomla

Joomla — одна из самых популярных систем управления контентом, поэтому ситуация с утратой административного пароля возникает нередко. К счастью, вернуть доступ можно несколькими способами: от стандартной функции «Забыли пароль?» на странице авторизации до ручного изменения записи пользователя в базе данных. Ниже мы разберём самые надёжные методы, начиная с восстановления через phpMyAdmin.

Восстановление по средствам phpMyAdmin

  1. Зайдите в phpMyAdmin;

  2. Выберите базу данных Вашего сайта и выделите таблицу: *__users;

joomla-phpMyAdmin

  1. Для пользователя admin в поле password вставьте хеш-пароль d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199 это значение установит в качестве пароля secret;

joomla-set-hash-password

  1. Следующим шагом необходимо перейти в административную панель Вашего сайта за адресом YOUR.DOMAIN/administrator/ и авторизуйтесь с новым паролем;

5 Последним шагом будет зайти в настройки административной панели и сменить пароль на более надёжный.

joomla-admin-edit-account

joomla-admin-set-password-ru

OpenCart

OpenCart — популярная e-commerce-платформа с открытым исходным кодом. Потеря доступа к административной панели может привести к простоям магазина и упущенным заказам, поэтому критично быстро вернуть контроль над учётной записью администратора. Один из самых простых и безопасных способов — воспользоваться встроенной функцией сброса пароля, которая отправляет одноразовую ссылку на зарегистрированный e-mail. Ниже подробно разберём, как это сделать.

Восстановление методом отправки письма на email

Перейдите на административную страницу Вашего сайта – YOUR.DOMAIN/admin и нажмите «Забыли пароль?» после чего введите Ваш email. Проверьте ящик Вашего почтового адреса.

Обратите внимание: для восстановления доступа с помощью почты в Вашей CMS должен быть корректно настроена служба для отправки писем.

Восстановление по средствам phpMyAdmin

  1. Зайдите в phpMyAdmin;
  2. Выберите Вашу базу данных и нажмите на кнопку SQL для sql-запроса:

opencart-choose-db-ru

  1. Добавьте следующий sql-запрос, заменив при этом PASSWORD на желаемый пароль:
UPDATE `*_user` SET `password` = md5('PASSWORD') WHERE `username` = 'admin'

opencart-sql

Не забудьте отправить запрос:

confirm

PrestaShop

PrestaShop — популярная CMS для электронной коммерции с открытым исходным кодом. Потеря доступа к административной панели может парализовать магазин и привести к потере заказов, поэтому крайне важно как можно быстрее восстановить контроль над учётной записью администратора. Самый простой способ — воспользоваться встроенной функцией сброса пароля, но у вас всегда есть резервные методы через phpMyAdmin или аварийный скрипт/CLI.

Восстановление через e-mail

  1. Перейдите на страницу входа в административную панель: https://YOUR.DOMAIN/admin123/
  2. Нажмите I forgot my password
  3. Введите e-mail, привязанный к учётной записи администратора
  4. Проверьте почту и перейдите по одноразовой ссылке для установки нового пароля

Обратите внимание: замените YOUR.DOMAIN, admin123 на фактические данные вашего сайта.

prestashop-forgot-password

Внимание: функция работает только при корректно настроенном SMTP или другом почтовом сервисе сайта.

Восстановление через phpMyAdmin

Для версий PrestaShop ≤ 1.6.x (старый крипто-алгоритм — MD5)

  1. Найдите cookie-key: откройте файл config/settings.inc.php и скопируйте значение константы _COOKIE_KEY_.

  2. Сгенерируйте MD5-хэш нового пароля командой:

echo -n '<COOKIE_KEY><NEW_PASSWORD>' | md5sum

Обратите внимание: замените <COOKIE_KEY> и <NEW_PASSWORD> на реальный cookie-key из шага 1 и желаемый пароль.

  1. Перейдите в phpMyAdmin, откройте таблицу ps_employee, выберите строку вашего пользователя и нажмите Изменить.

prestashop-phpmyadmin

  1. Замените значение поля passwd на MD5-хэш из шага 2.
  2. Сохраните изменения и войдите в административную панель с новым паролем.

Подсказка: можно сразу выполнить следующий SQL-запрос:

UPDATE ps_employee
SET    passwd = MD5('<COOKIE_KEY><NEW_PASSWORD>')
WHERE  email  = 'admin@example.com';

Для версий PrestaShop ≥ 1.7.x (новый крипто-алгоритм — bcrypt)

  1. Найдите cookie-key: откройте файл app/config/parameters.php и скопируйте значение параметра cookie_key.

  2. Сгенерируйте bcrypt-хэш нового пароля командой:

php -r "echo password_hash(<NEW_PASSWORD>, <COOKIE_KEY>);"

Обратите внимание: замените <COOKIE_KEY> и <NEW_PASSWORD> на реальный cookie-key из шага 1 и желаемый пароль.

  1. Перейдите в phpMyAdmin, откройте таблицу ps_employee, найдите запись вашего пользователя и нажмите Изменить.

  2. Замените значение поля passwd на bcrypt-хэш из шага 2.

  3. Сохраните изменения и войдите в административную панель с новым паролем.

Подсказка: можно сразу выполнить такой 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

  1. Подключитесь к серверу по SSH.

  2. В корне магазина выполните команду для создания нового администратора:

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»).
  1. Авторизуйтесь в административной панели под новым аккаунтом.

PrestaShop ≤ 1.6.x — аварийный скрипт (Emergency Admin)

  1. Скачайте файл emergency_admin.php из официальной темы сообщества.
  2. Загрузите файл в корень сайта через FTP/SSH.
  3. Откройте в браузере https://YOUR.DOMAIN/emergency_admin.php, заполните форму (e-mail и новый пароль).
  4. После сообщения «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 в БД

Официальная документация