Хеш от "email + salt" в качестве токена для подтверждения электронной почты - PullRequest
2 голосов
/ 02 сентября 2011

Я проверяю адрес электронной почты пользователя.
Большинство людей говорят, что нужно создать какой-то уникальный токен и сохранить его в БД и отправить пользователю.

Я делаю это с помощью простого хэширования (sha256) адресов электронной почты с использованием соли по всему миру
и отправив этот хеш пользователю.

Я что-то упустил или этого достаточно, чтобы проверить?

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011

Пара вещей, на которые стоит обратить внимание (или нет).

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

Кроме того, если соль одинакова, хеш будет таким же, если они снова запросят с того же электронногоПочта Адрес.Хотите ли вы каждый раз менять хэш, даже для одного и того же адреса электронной почты?Вы можете объединить дату и время сервера с адресом электронной почты, прежде чем хешировать его, чтобы каждый раз отличаться от него.

1 голос
/ 02 сентября 2011

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

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

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

...