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

snitko

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

Не подскажете как правильно организовать "восстановление" пароля на сайте? Внешне должно выглядеть примерно так: человек вводит e-mail, ему туда шлется некий линк щелкнув по которому он может придумать себе новый пароль. Т.е это не совсем восстановление, т.к. пароли хрянятся в захэшированном виде и есть возможность только создать новый пароль.

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

Буду благодарен за ссылки и советы.
 

Фанат

oncle terrible
Команда форума
непонятно - зачем указывать в линке хэш.
указывай все, что хочешь. к примеру, айдишник юзера и хэш от айдишник+секретное слово.
 

@ndrey

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

snitko

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

HraKK

Мудак
Команда форума
А ты высылай новый пароль на емайл юзера. Зачем в линке писать хеш пароль???!!
 

snitko

Новичок
А ты высылай новый пароль на емайл юзера. Зачем в линке писать хеш пароль???!!
Прально. Тогдай любой дурак сможет сбросить пароль своего собрата просто вбив его мэйл. Плохая идея.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Например.

-~{}~ 30.09.07 22:36:

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

Фанат

oncle terrible
Команда форума
snitko
правильно. а еще у него есть потенциальная возможность украсть сервер, вскрыть его консервным ножом, украсть все пароли, продить их на черном рынке, на вырученные деньги купить кирпич и сбросить его тебе на голову. АААААА! Жизнь кончилась!
 

@ndrey

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

Фанат

oncle terrible
Команда форума
короче. на мыло высылаешь линк, который автоматически авторизует юзера и он меняет свой пароль.
какие "потенциальные" проблемы здесь тебе мерещатся?
 

Фанат

oncle terrible
Команда форума
ну так менять и не надо в тот момент, когда тебе в эту форму всякую фигню написали.
 

snitko

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

Фанат

oncle terrible
Команда форума
Для автоматической авторизации все равно придется так или иначе использовать хэш старого пароля
с какого перепугу?
повторяю еще раз, читай по губам: в высылаемом линке использовать пароль нет ни малейшего смысла!
как понял меня? приём.
 

snitko

Новичок
повторяю еще раз, читай по губам: в высылаемом линке использовать пароль нет ни малейшего смысла!
Хорошо. Давай в подробностях. Вот приходит e-mail. Что в нем должно быть?
 

snitko

Новичок
Ну и? Вот я злоумышленник, хочу украсть аккаунт. Иду по ссылке /newpass/md5($uid)/ и меняю себе пароль. Если добавлять к хэшу uid секретное слово - надежность с одной стороны повышается. Но с другой стороны если это секретное слово кто-то подберет - получит доступ ко всем аккаунтам, фактически.
 

Фанат

oncle terrible
Команда форума
а если он подберет пароль к фтп, то ему твой сервис восстановления паролей на хер не сдастся вообще.

паранойю сейчас лечат, вполне успешно. рекомендую

-~{}~ 01.10.07 00:10:

мля, добавляй в хэшируемую строку и хэш пароля, если до такой степени тебя хакеры запугали.

чего ты теперь пугаться будешь? что подберут хэш пароля?
 
Сверху