2016-05-19 3 views
0

У меня есть веб-сайт, такой как SO. Когда пользователи создают учетную запись, их учетные записи деактивируются до тех пор, пока не откроются их электронные письма и не щелкните по такому URL-адресу, который я отправил ранее.Лучший алгоритм активации учетной записи пользователя

Ну, этот URL должен содержать какие параметры?


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

+1

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

+0

Посмотрите на соление хешей. [Это сообщение] (http://security.stackexchange.com/questions/51959/why-are-salted-hashes-more-secure-for-password-storage) относится к паролям, но вы можете использовать тот же метод для своего одноразовая ссылка активации. Затем вы можете просто сохранить ключ в своей базе данных до его использования, а затем удалить запись. – Takarii

+0

Обычно лучше также иметь дату истечения срока действия, чтобы через некоторое время вы могли очистить свой дБ, удалив все истекшие (неактивные) аккаунты. – ChatterOne

ответ

2

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

+0

emm, да, это не плохо. Спасибо. – stack

Смежные вопросы