Как сбросить пароль на сайте
Перейти к содержимому

Как сбросить пароль на сайте

  • автор:

Как безопасно реализовать сброс пароля на сайте

Рекомендую такой вариант:
1. Пользователь запрашивает восстановление пароля
2. Шлём ему на почту письмо со специальной ссылкой, содержащей токен
3. Пользователь переходит по ссылке из письма
4. Сверяем токен, после чего авторизуем его и даем задать новый пароль
5. Сохраняем хеш пароля в БД

Тонкости:
— Токен — достаточно длинная строка из случайных символов
— У токена должен быть срок действия, например 1 час. Это обезопасит систему от перебора токенов

  • Facebook
  • Вконтакте
  • Twitter

А зачем авторизировать? Смена пароля может быть только по однаразовому токену, либо с подтверждением старого пароля. Как бы не осталась после этого быра в виде смены пароля для авторизированного пользователя.

И ещё тонкий момент на который редко, но попадаешь — ссылка долдна вести на форму с кнопкой по нажатию которой посылается пост запрос. Есть ребята которые используют плагины, которые в фоне шастают по ссылкам и проверяют их на вирусы или собирабт статистику, поэтому гет запрос не должен менять статуса и забывать токен.

Руководство: сброс паролей

Существует множество ситуаций, когда пользователю может потребоваться сбросить пароль. Как правило, люди либо забывают свой пароль, либо сталкиваются с каким-либо нарушением безопасности, которое могло привести к раскрытию их пароля. В большинстве случаев они могут сбросить свой собственный пароль using «Email new password».

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

Методы

Use Special:UserLogin

Если вы знаете имя пользователя для учетной записи, вы можете использовать функцию «Отправить новый пароль по электронной почте» на странице Special:UserLogin. Чтобы использовать эту функцию, посетите страницу Special:UserLogin соответствующей вики, заполните поле «Имя пользователя» формы и нажмите кнопку «Отправить новый пароль по электронной почте». Временный пароль вместе с инструкциями по сбросу пароля учетной записи будет отправлен на адрес электронной почты, связанный с именем пользователя. Это произойдет, даже если адрес электронной почты не подтвержден.

Поиск имени пользователя для данного адреса электронной почты

Если вы знаете адрес электронной почты пользователя, но не знаете его имя пользователя, query the user table of the MediaWiki database, чтобы найти соответствующее имя пользователя. Например, чтобы найти имя пользователя для user@example.com , выполните следующий запрос:

Use the changePassword.php maintenance script

The changePassword.php maintenance script allows system administrators to change the password for an account. For complete instructions see changePassword.php . If you are already familiar with maintenance scripts, run the following command from maintenance subdirectory:

Предупреждение: Системные администраторы не должны знать незашифрованный пароль для учетных записей пользователей. Пользователь может использовать один и тот же пароль на многих разных сайтах. Если одна из их учетных записей, использующих тот же пароль, будет скомпрометирована, то подозрение может пасть на администратора. It is better to use «Email new password» to force the user to reset the password for their own account or to set a temporary password the user changes directly afterwards.

Use Special:PasswordReset

Special:PasswordReset allows accounts with the ‘editmyprivateinfo’ permission to reset account passwords for the local installation of MediaWiki.

  • Введите имя пользователя, которое вы хотите сбросить, в соответствующем поле и нажмите «Сбросить пароль».
  • Автоматически сгенерированный пароль будет отправлен пользователю по электронной почте.

For automatically inserting the username in links, use Special:PasswordReset?wpUsername=Foo .

Differences between Special:PasswordReset and Special:ChangePassword

MediaWiki differentiates between «resetting» and «changing» a password. In password reset request (via Special:PasswordReset or from the login page), you will be asked to provide either an email and/or username (this is configurable) and then an email is automatically sent to you with a generated password. No login is required to access this page, but might be restricted with internal permission checks.

In password change request (via Special:ChangePassword), you’ll be able to directly change the password on the spot (give the old one, and choose new one), but login is required to access the page. So if you cannot access Special:ChangePassword, use Special:PasswordReset to first get a temporary password to log in. But if you can access the former page, use it directly to change the password, this eliminates the need for the email stage. Special:PasswordReset can be disabled with Manual:$wgPasswordResetRoutes setting, if that’s the case, and you cannot access Special:ChangePassword, then you need to ask your system administrator for help.

Use the resetpassword API

The resetpassword API provides the same functionality as Special:PasswordReset.

Прямая модификация базы данных

To reset a password you can change the value of the user_password field inside the user table in your database. However, it’s generally far easier and safer to use «Email new password» or use the changePassword.php script. Вы должны использовать прямую модификацию БД только в крайнем случае, так как очень легко случайно испортить вашу вики. Всегда делайте резервную копию своей базы данных, прежде чем вносить какие-либо изменения вручную. The following only works when using MediaWiki’s default authentication provider. If you are using an extension that modifies the authentication process (Like LDAPAuth), the following may not work.

The format you see in the user table will depend on $wgPasswordDefault in LocalSettings.php . However if you use a different format, it will automatically be changed to the correct format the next time the user logs in. Thus for this guide, we show how to manually set the «B» format. This format is very easy to set from an SQL query. It is not the default format as it is weaker than pbkdf2, however that’s ok as the user_password field will be upgraded to the correct format the next time the user logs in.

MySQL salted (1234 is the salt. You can replace it with any number as long as both places the number is used are the same)

Сброс пароля

В WordPress есть несколько способов сбросить пароль. (Обычно самый простой способ сбросить его — воспользоваться ссылкой «Забыли пароль?» На главной странице входа в ваш блог или веб-сайт.) Однако бывают случаи (особенно, если ваша электронная почта работает некорректно), когда вам, возможно, придется предпринять другие шаги для сброса пароля.

Вот список различных способов сбросить пароль. Используемый вами метод зависит от типа доступа к вашему веб-сайту.

Изменение пароля через профиль пользователя

Изменить пароль в WordPress вы можете через настройки профиля пользователя. После того как вы выполнили вход в панель администрирования WordPress, зайдите в меню Пользователи → Ваш профиль и найдите раздел Новый пароль. Здесь вы можете задать новый пароль для текущего пользователя.

Если вы являетесь администратором сайта, то вы можете так же сменить пароль для другого пользователя, выбрав его в меню Пользователи → Все пользователи. Обратите внимание на шкалу надёжности, которая поможет вам выбрать более длинный и надёжный пароль.

Данный метод является самым простым и удобным, но к сожалению не применимым в тех случаях, когда вы не можете выполнить вход в панель управления WordPress. К счастью есть и другие варианты, не требующие входа.

Через ссылку восстановления

Если вы забыли пароль от вашего сайта на WordPress, то вы можете восстановить его по электронной почте. В форме входа (по адресу /wp-login.php) вы можете щёлкнуть ссылку «Забыли пароль» и ввести адрес электронной почты вашего пользователя или имя пользователя.

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

Если у вас нет доступа к электронной почте пользователя или если по какой-либо причине не работает отправка электронной почты с вашего сервера, то вам придётся воспользоваться другим методом.

Через командную строку MySQL

Если ваш хостинг провайдер не предоставляет пакет phpMyAdmin, то вы можете попытаться подключиться к вашей базе данных MySQL используя клиент MySQL через командную строку. Этот способ является более продвинутым и не рекомендуется новичкам.

Подключившись к серверу через SSH, выполните вход на сервер MySQL через командную строку, заменив значения username и password (а так же localhost, если вы подключаетесь к удалённой базе данных):

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

Командой SHOW TABLES можно получить список всех таблиц определённой базы данных:

После того, как вы нашли интересующую вас базу данных, выберите её командой USE, и выведите список всех пользователей:

Определив имя пользователя чей пароль вы хотите изменить, используйте команду UPDATE для смены пароля. Так же как и с phpMyAdmin, здесь необходимо воспользоваться функцией MD5 при вводе нового пароля:

После выполнения данного запроса вы сможете выполнить вход в панель администрирования WordPress, используя ваш новый пароль.

При работе с запросами MySQL стоит быть предельно осторожным. Забыв например часть «WHERE…» в предыдущем запросе, вы измените пароли для всех пользователей и отменить это действие нельзя. Мы рекомендуем сделать резервную копию базы данных прежде чем начинать работу с консолью MySQL.

Через phpMyAdmin

Большинство хостинг-провайдеров предоставляют доступ к phpMyAdmin — это утилита для работы с базами данных MySQL, где WordPress хранит всю информацию о своих пользователях. Если вы не можете зайти в phpMyAdmin, советуем обратиться за помощью к вашему хостинг-провайдеру, или же попробовать другой способ смены пароля.

После того как вы выполнили вход в phpMyAdmin, найдите базу данных вашего сайта и выберите её в панели слева. Её легко распознать по наличию таблиц wp_posts, wp_postmeta, wp_comments, wp_commentmeta, wp_users, wp_usermeta и т.д. Учтите, что префикс может отличаться.

Здесь нас интересует таблица wp_users. После того как вы её откроете, вы увидите список всех пользователей вашего сайта. Выберите того пользователя, чей пароль вы хотите изменить и щёлкните кнопку «редактировать». Вам будет представлена форма редактирования пользователя.

Поле user_pass отвечает за пароль выбранного пользователя. Для смены пароля очень важно выбрать функцию MD5 из выпадающего списка для поля user_pass, и затем ввести новый пароль в значении поля.

После сохранения изменений вы сможете выполнить вход в панель администрирования WordPress используя ваш новый пароль. Учтите, что изменив пароль в phpMyAdmin, вы не увидите его в открытом виде в таблице wp_users, поскольку WordPress хранит все пароли в зашифрованом виде.

Через FTP

Когда другие методы не являются доступными, пароль в WordPress можно изменить с помощью простого PHP файла. Для данного способа вам понадобится доступ к FTP серверу, где хранится ваш сайт. Создайте новый PHP файл с произвольным именем (например password-recovery.php) и следующим содержанием:

Данный код находит в базе данных пользователя с заданным именем пользователя, и изменяет его пароль. Не забудьте заменить значения my-username и my-new-password на ваше имя пользователя и пароль.

После этого откройте ваш FTP клиент и подключитесь к серверу вашего сайта. В директории где установлен WordPress найдите папку wp-content и зайдите в неё. Найдите директорию mu-plugins (не путайте с директорией plugins). Если директория mu-plugins не существует — создайте её. Загрузите в директорию mu-plugins созданный вами PHP файл.

Конечный путь до файла должен выглядеть примерно так: wordpress/wp-content/mu-plugins/password-recovery.php

После того как вы загрузили ваш файл, вы сможете выполнить вход в административную панель WordPress используя пароль, который вы указали в вашем PHP файле.

И наконец, не забудьте снова зайти в вашу директорию mu-plugins и удалить созданный вами файл password-recovery.php. Если вы этого не сделаете, WordPress будет изменять пароль при каждом посещении вашего сайта, что существенно снизит скорость его работы.

Через WP CLI

WP CLI — это инструмент командной строки для управления вашей установкой WordPress.

  1. Перейдите в корневой каталог wordpress и введите
  1. Затем обновите пользователя

заменив «1» на идентификатор пользователя, которого вы хотите обновить.

Использование сценария аварийного сброса пароля

Если другие перечисленные выше решения не работают, попробуйте сценарий аварийного сброса пароля. Обратите внимание, что это не плагин, это скрипт PHP.

Как сбросить пароль к админке WordPress через phpMyAdmin на хостинге?

Для чего сбрасывать пароль через phpMyAdmin? Ситуаций может быть много — Вы забыли этот пароль и по каким-то причинам не можете вспомнить через электронную почту, Вас почему-то не пускают в админку, Вы забыли пароль от электронной почты или этим ящиком уже не пользуетесь, Ваш блог просто сломали и изменили пароль (не дай Бог) и т.д. Самым простым решением является сброс пароля через phpMyAdmin на веб хостинге.

Недавно я работал с одним блогом, требующим прямого вмешательства в БД и сброса пароля, поэтому решил написать этот пост, чтобы в случае необходимости — Вы имели некую инструкцию «Как сбросить пароль к админке WordPress через phpMyAdmin на хостинге».

blank

Итак, в любом случае, но доступ на хостинг в панель управления Вашим сайтом (сайтами) у Вас остается и нам этого достаточно. В зависимости от того, каким интернет хостингом Вы пользуетесь — тип и внешний вид панели управления сайтами будет разный, но в каждой такой панели является пункт«phpMyAdmin», вот его и находите.

phpMyAdmin может быть скрыт, скажем — находиться в подпункте «Управление базами данных», поэтому внимательно просмотрите панель управления и найдите это приложение. Нашли и переходим непосредственно в phpMyAdmin. Перед Вами возникнет вот такая картина:

blank

Здесь мы имеем возможность делать с нашими базами данных все, что нам нужно, полностью ими управлять. Сейчас нам необходимо найти ту БД, которая касается нашего блога. Если Вы не помните какая именно база данных из списка (их здесь в левой стороне может быть несколько) касается Вашего ресурса, то просто посмотрите файл wp-config.php, там Вы все эти данные прописывали.

blank

Находите в этом файле строку:

define(‘DB_NAME’, ‘Название вашей БД’);

И именно эту базу данных выбираете в phpMyAdmin.

Нажимаем на эту БД и перед нами откроется полностью вся структура, все таблицы, которые мы можем изменить. Сейчас нас интересует таблицаwp_users.

blank

В этой таблице записаны все пользователи (если таких несколько), которые имеют доступ к управлению блогом. Именно здесь мы и сможем изменить пароль или удалить определенного пользователя — нажимаем на wp_users и нам откроется содержание всей таблицы.
Здесь нам нужно отредактировать пароль. В случае с блогом, с которым я работал, было видно, что кроме администратора был зарегистрирован еще один пользователь, а владелец мне сообщил, что пользователь должен быть только один. Значит кто-то там уже жил.
В таблице нам необходимо нажать на карандашик «Редактировать» рядом с именем пользователя и изменить пароль.

blank

Перед нами откроется структура этой таблицы, где мы увидим все данные, касающиеся этого пользователя. Я не буду подробно останавливаться на каждой ленте — расскажу только как сбросить пароль.

blank

Сейчас пароль у нас зашифрованный методом MD5, поэтому в соответствующем строчке мы видим непонятные символы.

Чтобы изменить пароль — делаем следующее: в строчке user_pass в поле пароля пишем новый пароль, а в поле varchar (64) — выбираем метод шифрования MD5.

blank

Внесли изменения и жмем кнопочку «Вперед» в самом низу и сохраняем новый пароль.

blank

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

Совет. НИКОГДА не используйте логин admin и простенькие пароли — это убережет Вас от неприятных последствий взлома Вашего ресурса. Измените свои данные доступа на более сложные и «странные».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *