Каковы плюсы и минусы использования адреса электронной почты в качестве идентификатора пользователя?
Я создаю веб-приложение, которое требует регистрации/аутентификации, и я подумываю, используя адрес электронной почты в качестве единственного идентификатора пользователя. Вот что я вижу как плюсы и минусы (обновлено с ответами):
плюсы
одним полем меньше, чтобы заполнить во время регистрации (это будет просто адрес электронной почты, пароль и проверить пароль). Я большой поклонник минималистичного оформления.
адрес электронной почты легче запоминать. (спасибо Митч,Джереми)
вам не нужно беспокоиться о том, что ваше любимое имя пользователя уже занято - вы единственный, кто использует свой адрес электронной почты. (спасибо TStamper)
минусы
пользователь имеет больше, чтобы ввести каждый раз, когда они входят в систему.
Что если пользователь хочет несколько учетных записей? Им понадобится еще один адрес электронной почты. (Я даже хочу, чтобы пользователь мог создавать несколько учетных записей?)
легко для потенциального злоумышленника угадать (если они знают адрес электронной почты цели, они знают логин). (спасибо Васил)
У пользователей может возникнуть соблазн использовать тот же пароль, который они используют для своей учетной записи электронной почты, что является плохой безопасностью. (спасибо Томас)
Если вы часто меняете адрес электронной почты, это может быть трудно вспомнить, какой адрес вы использовали при регистрации на сайте после долгого перерыва. (спасибо Программное Обеспечение Monkey)
хакер может спамить регистрационную форму и использовать ответы "email already taken" для создания списка действительных писем. (спасибо Дэвид)
Не у всех есть адрес электронной почты. (спасибо Николай)
Если бы я пошел с электронной почтой как id, я бы предоставьте механизм, позволяющий изменять его в случае изменения адреса пользователем. В этом случае пользователи не будут публиковать контент на общедоступном сайте, поэтому отдельное имя пользователя не будет необходимо для защиты адресов электронной почты (но это то, что нужно учитывать для других сайтов).
другой вариант-реализовать OpenID (что является целым другим обсуждением).
Это, кажется, работает для Google, но их услуги тесно интегрированы. Что я пропустил в своем анализе? У вас есть какие-нибудь рекомендации? У кого-нибудь есть опыт, чтобы поделиться?
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ
спасибо всем за ваши ответы. Я решил использовать электронную почту в качестве идентификатора, но затем разрешить создание имени пользователя для целей входа после регистрации. Это позволяет немного гибкости при сохранении регистрации как можно короче. Он также предотвращает проблемы, когда пользователь меняет адреса электронной почты (они могут просто войти в систему со своим именем пользователя и обновить его). Я тоже буду реализация методов предотвращения грубого вытеснения адресов электронной почты из систем регистрации и входа (в основном период охлаждения после повторных попыток).
15 ответов:
Я, как правило, не предпочитаю списки pro/con, а вместо этого пытаюсь думать о преимуществах и проблемах.
задача:
некоторые пользователи будут испытывать соблазн использовать свой адрес электронной почты от своего провайдера. Ссылка только на электронную почту может быть затруднена для пользователей, которые забывают обновить свою электронную почту на всех веб-сайтах, на которые они подписались, прежде чем они изменят интернет-провайдеры.
вместо:
вы должны рассмотреть возможность предоставления пользователю нескольких адресов, а также выбранный пользователем идентификатор, а затем пусть пользователь решает, что они хотят, чтобы они хотели сделать. Возможно, также рассмотрите возможность предоставления пользователю учетной записи OpenID.
лично я предпочитаю просто использовать мой адрес электронной почты в качестве имени пользователя. Это еще одна вещь, которую нужно помнить, и мне никогда не придется беспокоиться о том, что мое любимое имя уже занято.
только мои 2 цента!
Я думаю, что вы пропустили профи:
пользователи, вероятно, помнят свой адрес электронной почты; и поскольку адреса электронной почты уникальны, им никогда не придется беспокоиться о том, что их предпочтительное имя пользователя уже принято.
минусы
- когда тот же пароль используется для учетной записи электронной почты, компрометация одного автоматически означает компрометацию другого.
Как пользователь сайтов, я могу сказать вам, что я ненавижу запоминать ненужные имена. Я не использую уникальную ручку или что-то еще, поэтому я никогда не могу вспомнить, какой вариант моего имени я использовал, который еще не был взят. Я бы предпочел ввести свой адрес электронной почты.
кроме того, мне нравится OpenID.
минусы: не у всех есть адрес электронной почты. Рассмотрим, если ваша база данных когда-либо доступ к внутреннему приложению. Если вы работаете в магазине, люди будет позвоните и разместите заказ по телефону и откажитесь предоставить адрес электронной почты. Поэтому, имея адрес электронной почты в качестве идентификатора пользователя по умолчанию, не забудьте разрешить альтернативам войти в систему. (Конечно, это зависит от контекста.)
узнал этот нелегкий путь.
одна настройка, которую вы можете рассмотреть: иметь как имя пользователя, так и адрес электронной почты. Электронная почта используется для входа в систему и всегда хранится в частном порядке, имя пользователя используется для идентификации пользователя в любом публичном взаимодействии, таком как публикация комментария. Он становится немного более безопасным, поскольку обе половины учетных данных пользователя хранятся в частном порядке, тогда как если вы используете имя пользователя для входа и публичной идентификации, половина входа уже известна.
Я определенно согласен с вами насчет имея минимальную регистрацию в большинстве случаев, но в зависимости от того, что вы делаете, вы можете сбалансировать это с дополнительной безопасностью для своих пользователей. Четыре поля не являются возмутительными для регистрации (имя пользователя, электронная почта, пароль, подтверждение пароля), и если вы чувствуете себя особенно предприимчивым, вы можете сократить его до трех, отбросив поле подтверждения пароля, или два, отправив им по электронной почте пароль, который они могут изменить позже.
PRO
люди ненавидят создавать уникальное имя, которое соответствует их идентификатору и которое еще не было принято для регистрации site..So вот почему идентификатор пользователя как АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ так обнял.
ex: TStamper1930, кто на самом деле хочет вспомнить 1930 год в конце моего имени, что я действительно хотел
CON: Если хакер может попытаться зарегистрировать случайные адреса электронной почты в массовом порядке, он или она сможет выяснить, какие из этих адресов действительны на основе того, какие регистрации терпят неудачу. Это тактика, которая может быть использована для составления списков известных действительных адресов электронной почты, которые являются горячим товаром на черном рынке спама.
хотя теперь, когда я думаю об этом, это проблема, которая влияет на любой сайт, который просит адрес электронной почты в процессе регистрации процесс, независимо от того, есть ли отдельное имя пользователя. Но все равно есть о чем подумать.
CON: Если я изменю свой адрес электронной почты, вдруг все мои имена учетных записей недействительны. Мое имя не меняется, но моя электронная почта часто меняется. Я иногда возвращался на сайт после нескольких лет, и застрял... какой был мой адрес электронной почты два года назад???
придерживайтесь адресов электронной почты, которые они используют везде, на самом деле большинство крупных веб-сайтов используют их, они уникальны, поэтому они спасают пользователя от попыток найти имя, которое не используется другими, также пользователи не забудут свои адреса электронной почты (в большинстве случаев, по крайней мере:)), что в отличие от имен пользователей, которые они будут продолжать забывать, если они не посещают ваш сайт очень часто.
вы не должны беспокоиться о том, что они слишком длинны, как и все основные браузеры (т. е. FF .. и т. д.) Предлагаем автозаполнение форм, которое включено по умолчанию, поэтому вы вводите первые буквы в своей электронной почте, и вы получаете выпадающий список (т. е. список автозаполнения), где вы просто нажимаете, чтобы ввести всю электронную почту, лично я почти никогда не набираю адрес электронной почты полностью, я всегда набираю первые буквы, а затем выбираю электронную почту из выпадающего списка автозаполнения. Кроме того, если вы позволите пользователям запоминать (используя флажок "Запомнить меня" и постоянные куки), это будет еще одна причина не беспокоиться оно.
Я не знаю о вашем приложении, но обычно пользователи, имеющие несколько аккаунтов не желательно в большинстве приложений.
один con может заключаться в том, что если это адрес электронной почты, логин может быть угадан людьми и попытками атак грубой силы. Что на самом деле не является большой проблемой, так как на большинстве сайтов сегодня логины публично отображаются.
самым большим плюсом является то, что логины легче запомнить таким образом.
удачной установки требует имя пользователя и адрес электронной почты. Разрешение пользователю войти в систему с помощью адреса электронной почты или имени пользователя очень удобно. Дополнительное преимущество-пользователь может изменить свой адрес электронной почты. Это также позволит использовать несколько учетных записей для одного электронного письма.
чтобы решить ваш элемент 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_matchetc..
затем просто измените метод входа в систему, чтобы позволить электронной почте или логину соответствовать паролю.
это работает так же, как google или mobileme. Пользователь может просто ввести свое имя пользователя электронной почты (т. е. имя пользователя вместо [email protected].)
Если вы не заботитесь о том, чтобы заставить своих пользователей войти в ваше приложение с помощью Facebook или какой-либо другой социальной сети (Большинство людей, похоже, не заботятся), вы можете просто использовать свою электронную почту в социальной сети в качестве своего "идентификатора пользователя" при ссылке на другие таблицы/документы (MySQL, Mongo и т. д.).
Я заметил, что бонус к использованию Логинов в социальных сетях заключается в том, что вся безопасность была обеспечена указанной социальной сетью, в том числе не позволяя 2 пользователям иметь один и тот же адрес электронной почты или имя пользователя таким образом, их база данных избавляет вас от необходимости кодировать все это. Это просто мое личное предпочтение.
Comments