алгоритм восстановления пароля

my_php

Новичок
алгоритм восстановления пароля

юзер забыл свой пасс *бывает*... ну и вот заходит он на страницу lostpass.php там ему генерится новый пароль(если он введен верно свои данные), отслыается на почту, он должен подтвердить(активизировать) что это он запрашивал. так вот вопрос в том где и как хранить его новый пароль пока он его не активизировал? а то менять его в базе сразу же нехорошо, мало ли что... и как вообще действует вся эта система активизации, что где хранится?:confused:
 

sage

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

my_php

Новичок
"мало ли что" значит следующее:
пароль отсылается если он введет свой логин или мыло... а если любой другой введет чей-то логин или мыло..он поменяет ему пароль...
_____

а в каком виде посылать ему ссылку на активизацию. какие параметры туда вписывать?

2sage:
"создай новую табличку. Туда помещай этих забывчивых с новым паролем. Как только прошло подтверждение, просто удаляй запись. "

а если попробовать добавить в табличку еще одно поле (новый пароль)?







sage
 

sage

Новичок
my_php
а в каком виде посылать ему ссылку на активизацию. какие параметры туда вписывать?
Какой-нибудь уникальный идентификатор, например, время в микросекундах. Этот идентификатор так же храни в табличке.
а если попробовать добавить в табличку еще одно поле (новый пароль)?
а смысл?
 

Groove

Новичок
Re: алгоритм восстановления пароля

Автор оригинала: my_php
юзер забыл свой пасс *бывает*... ну и вот заходит он на страницу lostpass.php там ему генерится новый пароль(если он введен верно свои данные), отслыается на почту, он должен подтвердить(активизировать) что это он запрашивал. так вот вопрос в том где и как хранить его новый пароль пока он его не активизировал? а то менять его в базе сразу же нехорошо, мало ли что... и как вообще действует вся эта система активизации, что где хранится?:confused:
попробуй так:
1) Забывчивый посетитель заходит на
http://sitename.ru/lost_passwd.php
/*
тут будет некий текст типа этого:
Ниже введите Ваше имя пользователя. Помните, что имя чувствительно к регистру.
Как только Вы сделаете это, Вы получите письмо на e-mail на подтверждение Вашего запроса. Это нужно для того, чтобы убедиться, что запрос сделали именно Вы, а не какой-нибудь злоумышленник. В письме также будет содержаться ссылка, по которой Вы должны войти.
Вы будете перемещены к форме ввода нового пароля для Вашего аккаунта.
*/
Ему предлагается ввести e-mail адрес аккаунта, куда будет выслан запрос о смене пароля
/*
в твою таблицу специально созданную лддоя забытых паролей или в таблицу аккаунтов пишешь некий секретный хэш например от того же значения времение в микросекундах.
*/

2) вводим мыло и жмем "отправить"

3) Получаем письмо, идем по ссылке типа,
http://sitename.ru/lost_passwd.php?key=nhjkwherfkjw4x5wkj4h53
/*
проверяем наличие записи с таким секретным хэшем, если есть - двигаемся дальше
*/
там будет поле для ввода нового пароля

4) Вводим его и меняем старый пароль на новый
/*
удаляем секретный хэш из БД, переписываем старный пароль на новый
*/

5) логинимся с новым паролем.
 

kruglov

Новичок
Если секретный хэш уже сгенерен, а по ссылке еще не кликнуто, то при повторных попытках вспомнить пароль шлем уже существующий хэш.

Если кликнуто по ссылке - меняем пароль и очищаем хэш.

Зачем: чтоб злоумышленник не мог сделать хэш недействительным, вспомнив пароль кому-то в промежутке между кликом по ссылке "я забыл пароль" и кликом по ссылке в почте. Да, письмо с новым хэшем придет, но это будет уже потом...
 
Сверху