Научный журнал
Научное обозрение. Технические науки
ISSN 2500-0799
ПИ №ФС77-57440

СИСТЕМА ВОССТАНОВЛЕНИЯ ПАРОЛЯ ДЛЯ WEB-САЙТА

Старцева Е.К. 1 Васева Е.С. 1
1 Нижнетагильский государственный социально­педагогический институт (филиал) ФГАОУ ВО «Российский государственный профессионально­педагогический университет»
Рассматривается проблема восстановления утраченного пароля к веб-ресурсу. Описана технология процесса восстановления пароля на сайте с помощью подтверждения почты. В данном способе восстановления пароля пользователю предоставляется право на ввод нового пароля для записи его в базу данных. Технология восстановления пароля продемонстрирована на примере организации доступа к сайту «Шоу-группа Паприка». Представлена структура таблицы, в которой должны храниться учетные данные. Описан процесс создания стартовой страницы и страницы, на которой будет осуществляться ввод нового пароля. На странице ввода нового пароля пользователь вводит логин, пароль и повтор пароля, определены функции проверки совпадения введенных паролей, соответствия определенной сложности пароля. Показан код, в результате выполнения которого происходит отправка на электронный адрес письма со ссылкой для подтверждения адреса электронной почты. После подтверждения электронного адреса происходит запись нового пароля в зашифрованном виде методом md5 в базу данных. После смены пароля пользователь переадресовывается на главную страницу. Описанная технология может быть использована для реализации процедуры восстановления пароля с помощью электронной почты на других сайтах.
пароль
электронная почта
Javascript
токен
md5
php
1. Носова Ю.С., Бурмистров А.В. Проблемы восстановления утраченных паролей // Электронный журнал: наука, техника и образование. 2018. № 4 (22). С. 76–80.
2. Цыбикова Т.С. Менеджеры паролей // Инновационные технологии в науке и образовании: материалы V Всероссийской научно-практической конференции с международным участием. 2017. С. 188–192.
3. Юлдашев Т.З., Шептунов С.А. Основы информационной безопасности при разработке сайтов // Инфокоммуникационные технологии. 2018. Т. 16. № 4. С. 430–437.
4. Максимова А.В., Стукалина Е.Ф. Анализ возможности восстановления хэшированного алгоритмом md5 пароля // Информационные технологии в науке, промышленности и образовании: сборник трудов Региональной научно-технической очно-заочной конференции. 2017. С. 66–71.
5. Чернова А.Я., Бобрышева Г.В. Алгоритмы формирования хэш-кода сообщения md5 и sha-1 // Информационные технологии в моделировании и управлении: подходы, методы, решения: материалы I Всероссийской научной конференции: в 2 частях. Тольятти: Тольяттинский государственный университет. 2017. С. 477–482.

Пароли – это неизменный атрибут информационной безопасности, особенно когда речь идет о сайтах и сервисах, хранящих персональные данные. Процедура аутентификации является обязательной для таких сайтов и сервисов. Современные пользователи, как правило, имеют большой набор учетных данных, и нередко сталкиваются с ситуацией, когда доступ к ресурсу невозможен, потому что учетные данные утеряны или забыты. Поэтому важно предусмотреть процедуру восстановления учетных данных. Восстановление учетных данных востребовано с помощью электронной почты. Существует несколько вариантов восстановления паролей с использованием электронной почты [1–3].

Одним из способов является отправка на почту, введенную ранее, уже сгенерированного пароля. Данный способ не является рациональным, т.к. не всегда удобно запоминать сгенерированный пароль. Кроме того, такой способ восстановления пароля не является на 100 % защищённым, т.к. пароли хранятся в открытом виде и при взломе почты пользователя злоумышленник получит доступ к аккаунту и информации, принадлежащей этому аккаунту.

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

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

Цель исследования: рассмотреть проблему восстановления утраченного пароля к сайту. Описать технологию процесса восстановления пароля посредством подтверждения почты на примере существующего сайта.

Материалы и методы исследования

Рассмотрим технологию реализации способа восстановления пароля с подтверждением электронной почты. Технологию восстановления пароля реализуем на примере организации доступа к сайту «Шоу-группа Паприка». Понадобится база данных, страница со ссылкой (от которой будет происходить адресация на изменение пароля), отдельная страница (для ввода нового пароля) и 2 файла с функциями обработки.

Результаты исследования и их обсуждение

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

- Id (идентификатор/счетчик).

- E-mail – для записи почты пользователя.

- Password – для записи пароля поль- зователя.

- Reset_password_token – для записи ссылки.

Поле для записи пароля необходимо задать в формате varchar(32), т.к. для записи пароля в базу данных мы будем использовать функцию md5, которая возвращает хеш в виде 32-символьного шестнадцатеричного числа [4–5].

Далее переходим к созданию страницы, на которой будет расположена ссылка для перехода на страницу изменения пароля (далее будем называть ее «стартовой»).

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

star1.tif

Рис. 1. Фрагмент кода для страницы авторизации

star2.tif

Рис. 2. Код на ссылку для смены пароля

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

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

Окончательный вид страницы авторизации изображен на рис. 3.

На странице смены пароля должны быть размещены следующие элементы (рис. 4).

- Поле для ввода логина.

- Поля для ввода пароля.

- Кнопка «Сохранить».

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

star3.tif

Рис. 3. Страница авторизации

star4.tif

Рис. 4. Страница смены пароля

star5.tif

Рис. 5. Проверка паролей на совпадение

В этом фрагменте кода производится проверка на количество символов – минимальное количество 6 символов, а максимальное 8. Если пароль не соответствует этому условию, то выводится ошибка. Если пароли не совпадают, то вводится сообщение об ошибке «Пароли не совпадают», и кнопка дезактивируется.

Фрагмент кода, приведенный выше, выполняет обработку полей password и confirm_password. Эти поля выводятся на экран с помощью тега <input>. Код для страницы new_password представлен на рис. 6.

star6.tif

Рис. 6. New_password

После заполнения полей и нажатия кнопки запускается файл edit_password.php, в котором происходит обработка запроса.

Для начала нужно записать адрес сайта, для этого используется встроенная функция php – $_SERVER[‘SERVER_NAME’].

Далее производится проверка на наличие данного логина в базе данных, если такой логин есть, то код выполняется дальше, иначе выводится ошибка «Такого пользователя не существует». Фрагмент кода представлен на рис. 7.

star7.tif

Рис. 7. Фрагмент кода файла edit_password.php

Если такой пользователь существует – записываем пароль и выбираем из базы данных e-mail, который был ранее присвоен пользователю. Далее составляем токен, который будет отправлен в письме на почту пользователя, составляем все элементы для отправки письма на почту. Код для составления письма представлен на рис. 8.

star8.tif

Рис. 8. Фрагмент кода для отправки письма

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

star9.tif

Рис. 9. Вид письма для изменения пароля

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

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

Как видно на рис. 10, сначала нужно получить данные о токене, почте и пароле из глобального массива, проверить их на наличие и пустоту.

star10.tif

Рис. 10. Фрагмент кода на подтверждение почты пользователя

star11.tif

Рис. 11. Фрагмент кода на обновление пароля

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

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

Заключение

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


Библиографическая ссылка

Старцева Е.К., Васева Е.С. СИСТЕМА ВОССТАНОВЛЕНИЯ ПАРОЛЯ ДЛЯ WEB-САЙТА // Научное обозрение. Технические науки. – 2020. – № 1. – С. 26-31;
URL: https://science-engineering.ru/ru/article/view?id=1276 (дата обращения: 28.03.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674