Каковы плюсы и минусы использования адреса электронной почты в качестве идентификатора пользователя?
Я создаю веб-приложение, которое требует регистрации/аутентификации, и я подумываю, используя адрес электронной почты в качестве единственного идентификатора пользователя. Вот что я вижу как плюсы и минусы (обновляется с ответами):
плюсы
на одно поле меньше, чтобы заполнить во время регистрации (это будет просто адрес электронной почты, пароль и проверить пароль). Я большой поклонник минималистичной регистрации.
адрес электронной почты легче запоминать. (спасибо Митч, Джереми)
вам не нужно беспокоиться о том, что ваше любимое имя пользователя уже принято - вы единственный, кто использует свой адрес электронной почты. (спасибо TStamper)
минусы
пользователь должен вводить больше каждый раз, когда они входят в систему.
Что если пользователь хочет несколько учетных записей? Им нужен еще адрес электронной почты. (Хочу ли я, чтобы пользователь мог создавать несколько учетных записей?)
легко для потенциального злоумышленника угадать (если они знают адрес электронной почты цели, они знают логин). (спасибо Васил)
пользователи могут захотеть использовать тот же пароль, который они используют для своей учетной записи электронной почты, который плохо безопасности. (спасибо Томас)
Если вы часто меняете адрес электронной почты, это может быть трудно вспомнить, какой адрес вы использовали при регистрации на сайте после долгого перерыва. (спасибо Программное Обеспечение Monkey)
хакер может спам регистрационную форму и использовать "электронная почта уже приняты" ответы для создания списка действительных писем. (спасибо Дэвид)
Не у всех есть адрес электронной почты. (спасибо Николай)
Если бы я пошел с электронной почтой как id, я бы укажите механизм, позволяющий изменять его в случае изменения адреса пользователем. В этом случае пользователи не будут размещать контент на общедоступном сайте, поэтому отдельное имя пользователя не будет необходимо для защиты адресов электронной почты (но это нужно учитывать для других сайтов).
другой вариант-реализовать OpenID (который является целым другим обсуждением).
Это, кажется, работает для Google, но их услуги тесно интегрированы. Что я пропустил в своем анализе? У вас есть есть рекомендации? У кого-нибудь есть чем поделиться?
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ
спасибо всем за ваши ответы. Я решил использовать электронную почту в качестве идентификатора, но затем разрешить создание имени пользователя для целей входа после регистрации. Это позволяет немного гибкости при сохранении регистрации как можно короче. Это также предотвращает проблемы, когда пользователь меняет адреса электронной почты (они могут просто войти в систему со своим именем пользователя и обновить его). Я тоже буду внедрение методов предотвращения грубого вытеснения адресов электронной почты из систем регистрации и входа (в основном период охлаждения после повторных попыток).
15 ответов
Я, как правило, не предпочитаю списки pro/con, а вместо этого стараюсь думать о преимуществах и проблемах.
задача:
некоторые пользователи будут испытывать соблазн использовать свой адрес электронной почты от своего интернет-провайдера. Связывание только с электронной почтой может быть затруднено для пользователей, которые забывают обновить свою электронную почту на всех веб-сайтах, на которые они подписались, прежде чем изменять интернет-провайдеры.
вместо:
вы должны рассмотреть возможность предоставления пользователю нескольких адресов, а также выбранный пользователем идентификатор, а затем позволить пользователю решить, что они хотят, они хотят сделать. Возможно, также рассмотрите возможность предоставления пользователю учетной записи OpenID.
лично я предпочитаю просто использовать мой адрес электронной почты в качестве имени пользователя. Это на одну вещь меньше, чтобы помнить, и мне никогда не придется беспокоиться о том, что мое любимое имя уже занято.
только мои 2 цента!
Я думаю, что вы пропустили PRO:
пользователи, вероятно, запомнят свой адрес электронной почты; и поскольку адреса электронной почты уникальны, им никогда не придется беспокоиться о том, что их предпочтительное имя пользователя уже принято.
минусы
- когда тот же пароль используется для учетной записи электронной почты, компрометация одного автоматически означает компрометацию другого.
Как пользователь сайтов, я могу сказать вам, что я ненавижу запоминать ненужные имена. Я не использую уникальную ручку или что-то еще, поэтому я никогда не могу вспомнить, какой вариант моего имени я использовал, который еще не был принят. Я лучше наберу свой адрес электронной почты.
кроме того, мне нравится OpenID.
минусы: не у всех есть адрес электронной почты. Подумайте, доступна ли ваша база данных внутренним приложением. Если вы управляете магазином, люди будет позвоните и сделайте заказ по телефону и откажитесь предоставить адрес электронной почты. Поэтому, имея адрес электронной почты в качестве идентификатора пользователя по умолчанию, не забудьте разрешить альтернативам войти в систему. (Конечно, это зависит от контекста.)
узнал этот нелегкий путь.
одна настройка, которую вы можете рассмотреть: иметь имя пользователя и адрес электронной почты. Электронная почта используется для входа в систему и всегда хранится в секрете, имя пользователя используется для идентификации пользователя в любом публичном взаимодействии, таком как публикация комментария. Это немного более безопасно, поскольку обе половины учетных данных пользователя хранятся в частном порядке, тогда как если вы используете имя пользователя для входа и публичной идентификации, половина входа уже известна.
Я, безусловно, согласен с вами о имея минимальную регистрацию в большинстве случаев, но в зависимости от того, что вы делаете, вы можете сбалансировать это с дополнительной безопасностью для своих пользователей. Четыре поля не возмутительны для регистрации (имя пользователя, электронная почта, пароль, подтвердите пароль), и если вы чувствуете себя особенно предприимчивым, вы можете сократить его до трех, сбросив поле подтверждения пароля, или два, отправив им по электронной почте пароль, который они могут изменить позже.
PRO
люди ненавидят создавать уникальное имя, которое соответствует их id и которое еще не было принято для регистрации на сайте..так вот почему id пользователя как АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ так обнял.
ex: TStamper1930, который на самом деле хочет вспомнить 1930 в конце моего имени, что я действительно хотел
CON: Если хакер может попытаться зарегистрировать случайные адреса электронной почты в массовом порядке, он или она сможет выяснить, какие из этих адресов действительны на основе которых регистрации не удается. Это тактика, которая может быть использована для составления списков известных действительных адресов электронной почты, которые являются горячим товаром на черном рынке спама.
хотя теперь, когда я думаю об этом, это проблема, которая влияет на любой сайт, который просит адрес электронной почты в процессе регистрации процесс, независимо от того, существует ли отдельное имя пользователя. Но все равно есть над чем подумать.
CON: Если я изменю свой адрес электронной почты, вдруг все мои имена учетных записей недействительны. Мое имя не меняется, но моя электронная почта часто меняется. Я иногда посещал сайт через несколько лет и застрял... какой был мой адрес электронной почты два года назад???
придерживаться адресов электронной почты они используются везде, на самом деле большинство крупных веб-сайтов используют их, они уникальны, поэтому они спасают пользователя от борьбы, чтобы найти имя, которое не используется другими, также пользователи не забудут свои адреса электронной почты (в большинстве случаев, по крайней мере:)), что в отличие от имен пользователей, которые они будут продолжать забывать, если они не посещают ваш сайт очень часто.
вы не должны беспокоиться о том, что они слишком долго, как все основные браузеры (т. е. FF .. и т. д.) Предлагаем автозаполнение форм, которые включены по умолчанию, поэтому вы вводите первые буквы в своем письме и получаете раскрывающийся список (т. е. список автозаполнения), где вы просто нажмите, чтобы ввести всю электронную почту, лично я почти никогда не набираю адрес электронной почты в полном объеме, я всегда набираю первые буквы, а затем выберите электронную почту из выпадающего списка автозаполнения. Кроме того, если вы позволяете пользователям запоминать (используя флажок "Запомнить меня" и постоянные куки), это будет еще одна причина не беспокоиться он.
Я не знаю о вашем приложении, но обычно пользователи, имеющие несколько аккаунтов не желательно в большинстве приложений.
один con может быть, что если это адрес электронной почты, логин может быть угадан людьми и попыткой атаки грубой силы. Это не очень большая проблема, так как на большинстве сайтов сегодня логины отображаются публично.
самый большой pro является то, что логины легче запомнить таким образом.
хорошая настройка требует имени пользователя и электронной почты. Разрешение пользователю войти в систему с помощью адреса электронной почты или имени пользователя очень удобно. Дополнительное преимущество-пользователь может изменить свой адрес электронной почты. Это также позволит несколько учетных записей для одного письма.
чтобы решить ваш элемент con электронной почты слишком долго, чтобы вводить каждый раз. Я реализовал библиотеку Stringscan Ruby.
require 'strscan'
def signup!(user, &block)
self.email = user[:email] unless user[:email].blank?
str = StringScanner.new(self.email)
str.scan_until(/@/)
str.pre_match
self.login = str.pre_match
etc..
затем просто измените метод входа в систему, чтобы позволить электронной почте или логину соответствовать паролю.
это работает так же, как google или mobileme. Пользователь может просто ввести свое имя пользователя электронной почты (т. е. имя пользователя вместо username@gmail.com.)
Если вы не заботитесь о том, чтобы заставить своих пользователей войти в ваше приложение с Facebook или какой-либо другой социальной сетью (большинство людей, похоже, не заботятся), то вы можете просто использовать их электронную почту социальной сети в качестве своего "идентификатора пользователя" при ссылке на другие таблицы/документы (MySQL, Mongo и т. д.).
Я заметил, что бонус к использованию Логинов в социальных сетях заключается в том, что вся безопасность была обеспечена указанной социальной сетью, в том числе не позволяя пользователям 2 иметь одинаковую электронную почту или имя пользователя в таким образом, их база данных избавляет вас от необходимости кодировать все это. Это мое личное предпочтение.