От this question мне очень нравится @ woliveirajr отвечает, потому что он решает:Secure системы для проверки адрес электронной почты
- как защититься от рилизинга адреса электронной почты, используемый на сайте
- проверяет владелец из адрес электронной почты
Чтобы избежать такого рода утечки, вы могли бы также начать процесс регистрации запрашивая электронной почты. После его ввода вы отправите электронное письмо со ссылкой, чтобы пользователь мог продолжить процесс регистрации . Если электронное письмо уже было зарегистрировано, вы должны отправить по электронной почте.
Таким образом, зарегистрировался только владелец электронной почты.
Недостатки:
- вероятно, настоящие, обычные пользователи надоедят, имея так много шагов для регистрации.
- В очень немногих случаях простое выявление того, что электронное письмо уже зарегистрировано на сайте, является проблемой, особенно потому, что легко зарегистрировать на любом сайте, предоставив любое электронное письмо, которое вы хотите. Вы только не получите электронное письмо, чтобы активировать свою учетную запись, но в целом сайт свяжет учетную запись/имя пользователя с этим электронным письмом.
Где я неуверенный в том, как реализовать систему, при которой пользователь может получить доступ только на страницу регистрации при нажатии на ссылку с электронной почтой. Будет ли страница регистрации получать данные, переданные ей с использованием GET, и проверить «код», чтобы узнать, может ли пользователь зарегистрироваться, и этот код меняется каждые 30 минут? Например, ссылка для регистрации по электронной почте может быть mysite.com/register.php?secretcode=as18d
, а register.php
проверяет «код» as18d
, но этот код будет меняться каждые 30 минут. Это идея? Будет ли код генерироваться засоленным хэшем на основе системного времени?
Или вместо электронной почты можно отправить по электронной почте ссылку с несколькими письмами, которые пользователь входит на страницу регистрации для аутентификации, например, как работает захват, но не на самом деле.
Это функция, которая требуется для создания GUID/UUID? http://php.net/manual/en/function.uniqid.php или следует использовать вместо этого 'openssl_random_pseudo_bytes()'? – Celeritas
Уникальность - это все, что имеет значение, поэтому либо должно быть хорошо, так как получение последовательности значений нецелесообразно. –