Как я могу убедиться, что адрес электронной почты, на который я отправил приглашение, отвечает.? - PullRequest
0 голосов
/ 12 июня 2018

Итак, я отправляю приглашение на адрес электронной почты, чтобы человек мог нажать на кнопку, чтобы ответить.Они могут нажать на ссылку или вырезать и вставить его в браузер.Я хочу убедиться, что только тот человек, которому я отправил письмо, отвечает.Так что нет пересылки приглашения или обмена ссылкой.Я знаю, что мог бы указать целевой адрес электронной почты в href в качестве параметра возврата, но этим можно было манипулировать.Есть ли безопасный способ сохранить целевой адрес электронной почты в ссылке, которую нужно вернуть?РЕДАКТИРОВАТЬ: Итак, я знаю, что я могу просто отправить подтверждение по электронной почте после того, как человек принял приглашение и зарегистрируйтесь.Я также могу сохранить исходный адрес электронной почты и заставить приглашенного использовать его для регистрации, а затем отправить подтверждающее электронное письмо, но все это кажется очень круглым, есть ли более эффективный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

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

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

Однако, как вы сказали, электронная почта можетбыть направленным.Если вы отправляете приглашение Алисе, а она пересылает его Бобу, то ничто не мешает Бобу принять его от имени Алисы.

Вы можете предупредить Алису в электронном письме, что ссылка является закрытой и не должна пересылаться.

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

Вы также можете отправить Алисе сообщение «Вы приняли приглашение. Если это была ошибка, нажмите здесь, чтобы отменить».по электронной почте.

0 голосов
/ 12 июня 2018

Да, есть.

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

  • Идентификатор пользователя
  • Электронная почта
  • Отметка времени отправки

Итаку вас будет строка вроде:

1234-user@domain.tld-1528789712

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

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

?source=ba1159374805fb1c3129afd4811c7be072bd9205d88237c8a957a1dfdf6dd00c

Надеюсь, это поможет.

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