Подтверждение неподтвержденного адреса электронной почты? - PullRequest
3 голосов
/ 19 ноября 2011

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

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

Мой вопрос касается кода.Какой лучший способ реализовать это?Некоторые идеи:

  1. Случайная строка генерируется при вводе нового адреса на сайт.Эта случайная строка сохраняется в БД и затем отправляется по электронной почте владельцу регистрации.Ссылка в электронном письме будет содержать случайную строку как часть URL.
  2. Адрес электронной почты хэшируется.Это означает, что ничего не нужно сохранять в базе данных, потому что приложение будет знать, как это отменить.(Меня беспокоит такой подход: если позже пользователь изменит свой адрес электронной почты на тот, который он ранее ввел, хеш будет таким же. Не уверен, представляет ли это какую-то угрозу безопасности.)
  3. Какой-то другой подход?

Я ищу общий совет по этой проблеме.

Ответы [ 2 ]

3 голосов
/ 19 ноября 2011

Номер один, случайная строка, является самым безопасным (и AFAIK, самым распространенным) путем: он делает невозможным злонамеренное действие с адресами электронной почты, для которых я не получил письмо для.

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

2 голосов
/ 19 ноября 2011

Я использую 1-й подход каждый раз

  1. Создайте случайный код
  2. Сохраните его в БД
  3. Отправьте его пользователю по электронной почте с помощью кликабельной ссылки, например, активации.php? key = blabla
  4. На странице активации дайте пользователю возможность ввести его тоже вручную
  5. При отправке сравните ключи
  6. Активируйте пользователя
  7. Если пользователь изменилсяобратный почтовый адрес 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...