Требование уникальных адресов электронной почты при защите конфиденциальности ваших пользователей?

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

Есть ли какой-либо реальный способ остановить это, или это просто нужно принять как возможность?

Изменить: просто чтобы быть понятным, речь идет о создании учетной записи. Даже вы предоставляете общий "недопустимый логин" для плохих логинов, как вам понадобится уникальный адрес электронной почты или имя пользователя, не раскрывая, какие имена пользователей или адреса электронной почты действительны?

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

Ответы

Ответ 1

Если кто-то пытается зарегистрироваться с существующей учетной записью — отправьте электронное письмо "Изменить пароль" вместо электронной почты "Новая учетная запись" (и объясните, почему).

Оставьте HTTP-ответ как простой "Письмо с подтверждением отправлено на указанный вами адрес. Следуйте инструкциям в нем, чтобы продолжить".

Ответ 2

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

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

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

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

Наконец, если указано неверное имя пользователя/пароль, не сообщайте пользователю, что это плохо.

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

Ответ 3

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

Ответ 4

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