Quels sont les avantages et les inconvénients d'utiliser une adresse électronique comme identifiant?

StackOverflow https://stackoverflow.com/questions/647172

Question

Je crée une application Web qui nécessite un enregistrement / une authentification et je songe à utiliser une adresse électronique comme identifiant unique. Voici ce que je considère comme le pour et le contre (mise à jour avec les réponses):

PROS

  1. Un champ de moins à remplir lors de l'inscription (il s'agirait uniquement d'une adresse électronique, d'un mot de passe et d'un mot de passe de vérification). Je suis un grand fan de l'enregistrement minimaliste.

  2. Une adresse email est plus facile à retenir. (merci Mitch , Jeremy )

  3. Vous n'avez pas à vous inquiéter du fait que votre nom d'utilisateur favori soit déjà pris, vous êtes le seul à utiliser votre adresse e-mail. (merci TStamper )

CONS

  1. L'utilisateur doit en saisir plus chaque fois qu'il se connecte.

  2. Et si un utilisateur veut plusieurs comptes? Ils auront besoin d'une autre adresse email. (Est-ce que je veux même qu'un utilisateur puisse créer plusieurs comptes?)

  3. Il est facile pour un attaquant potentiel de deviner (s'il connaît l'adresse électronique de la cible, il connaît l'identifiant de connexion). (merci Vasil )

  4. Les utilisateurs peuvent être tentés d'utiliser le même mot de passe qu'ils utilisent pour leur compte de messagerie, ce qui constitue une sécurité insuffisante. (merci Thomas )

  5. Si vous modifiez fréquemment les adresses électroniques, il peut être difficile de vous rappeler quelle adresse vous avez utilisée pour vous inscrire à un site après une longue interruption. (merci Software Monkey )

  6. Un pirate informatique pourrait spammer le formulaire d’enregistrement et utiliser "e-mail; déjà pris" " réponses pour générer une liste de courriels valides. (merci David )

  7. Tout le monde n'a pas d'adresse électronique. (merci Nicholas )

Si je choisissais le courrier électronique comme identifiant, je fournirais un mécanisme permettant de le modifier en cas de changement d'adresse. Dans ce cas, les utilisateurs ne publieraient pas de contenu sur un site public. Par conséquent, un nom d'utilisateur distinct ne sera pas nécessaire pour protéger les adresses électroniques (mais vous devez en tenir compte pour les autres sites).

Une autre option consiste à implémenter OpenID (qui est un tout autre débat).

Cela semble fonctionner pour Google, mais leurs services sont étroitement intégrés. Qu'est-ce que j'ai manqué dans mon analyse? As-tu des recommandations? Quelqu'un a-t-il des expériences à partager?

FINAL EDIT

Merci à tous pour vos réponses. J'ai décidé d'utiliser le courrier électronique comme identifiant, mais j'autorise ensuite la création d'un nom d'utilisateur à des fins de connexion après l'enregistrement. Cela permet un peu de flexibilité tout en conservant une inscription la plus courte possible. Cela évite également les problèmes lorsqu'un utilisateur change d'adresse électronique (il lui suffit de se connecter avec son nom d'utilisateur et de le mettre à jour). Je mettrai également en œuvre des méthodes pour empêcher les adresses e-mail d'abandonner brusquement les systèmes d'enregistrement et de connexion (principalement une période de récupération après des tentatives répétées).

Était-ce utile?

La solution

J'ai tendance à ne pas préférer les listes pro / contre, mais plutôt à penser aux avantages et aux défis.

Défi:

Certains utilisateurs seront tentés d’utiliser leur adresse électronique auprès de leur fournisseur d’accès Internet. La liaison à un courrier électronique seul peut s'avérer difficile pour les utilisateurs qui oublient de mettre à jour leur courrier électronique sur tous les sites Web auxquels ils se sont inscrits avant de changer de fournisseur de services Internet.

Au lieu de cela:

Vous devriez envisager d'autoriser un utilisateur à fournir plusieurs adresses, ainsi qu'un identifiant sélectionné par l'utilisateur, puis de laisser l'utilisateur décider de ce qu'il souhaite faire. Peut-être aussi envisager d'autoriser l'utilisateur à fournir un compte OpenID.

Autres conseils

Personnellement, je préfère simplement utiliser mon adresse e-mail comme nom d'utilisateur. C'est une chose de moins à retenir et je n'ai jamais à m'inquiéter du fait que mon nom préféré soit déjà pris.

Seulement mes 2 cents!

Je pense que vous avez raté un PRO:

Les utilisateurs sont susceptibles de se souvenir de leur adresse électronique. et comme les adresses électroniques sont uniques, ils n'ont jamais à s'inquiéter du fait que leur nom d'utilisateur préféré soit déjà pris.

CONS

  1. Lorsque le même mot de passe est utilisé pour le compte de messagerie, compromettre l'un signifie automatiquement compromettre l'autre.

En tant qu'utilisateur de sites Web, je peux vous dire que je n'aime pas mémoriser les noms d'utilisateurs inutiles. Je n'utilise pas de poignée unique ni quoi que ce soit, je ne peux donc jamais me souvenir de la variante de mon nom que j'ai utilisée et qui n'a pas déjà été prise. Je préfère de loin taper mon adresse email.

J'aime aussi OpenID.

CON: Tout le monde n’a pas d’adresse e-mail. Déterminez si votre application est déjà utilisée par une application interne. Si vous exploitez un magasin, les utilisateurs vont appeler, passer une commande par téléphone et refuser de fournir une adresse e-mail. Par conséquent, même si vous avez une adresse électronique comme ID utilisateur par défaut, assurez-vous de permettre aux utilisateurs alternatifs d'entrer dans le système. (Bien entendu, cela dépend du contexte.)

J'ai appris cela à la dure.

Une configuration à considérer: ayez un nom d’utilisateur et un email. L'e-mail est utilisé pour se connecter et reste toujours confidentiel. Le nom d'utilisateur est utilisé pour identifier l'utilisateur dans toute interaction publique, telle que la publication d'un commentaire. En fin de compte, il est légèrement plus sûr que les deux moitiés des identifiants de connexion de l'utilisateur restent confidentielles, alors que si vous utilisez un nom d'utilisateur pour l'identifiant de connexion et l'identification publique, la moitié de l'identifiant est déjà connue.

Je suis tout à fait d’accord avec vous sur le fait que le nombre d’enregistrements doit être minimal dans la plupart des cas, mais en fonction de vos activités, vous souhaiterez peut-être concilier cette protection avec une sécurité accrue pour vos utilisateurs. Quatre champs ne sont pas scandaleux pour l'enregistrement (nom d'utilisateur, email, mot de passe, confirmez le mot de passe), et si vous vous sentez particulièrement aventureux, vous pouvez le réduire à trois en laissant tomber le champ de confirmation du mot de passe, ou deux en leur envoyant un mot de passe. qu'ils peuvent changer plus tard.

PRO

Les gens détestent devoir créer un nom unique qui correspond à leur identifiant et qui n'a pas déjà été utilisé pour s'inscrire sur un site. C’est pourquoi l’identifiant de l’utilisateur ADRESSE E-MAIL est adopté.

ex : TStamper1930, qui veut réellement se souvenir de 1930, à la fin de mon nom, que je voulais vraiment

CON: Si un pirate informatique peut essayer d'enregistrer en masse des adresses électroniques aléatoires, il sera en mesure de déterminer laquelle de ces adresses sont valides, en fonction des enregistrements qui ont échoué. C’est une tactique qui peut être utilisée pour constituer des listes d’adresses électroniques valides connues, qui sont très demandées sur le marché noir du spam.

Bien que j'y réfléchisse maintenant, c'est un problème qui concerne tout site Web qui demande une adresse e-mail dans le cadre du processus d'inscription, qu'il existe ou non un nom d'utilisateur distinct. Mais il faut encore y penser.

CON: si je modifie mon adresse e-mail, soudainement tous les noms de mes comptes sont invalides. Mon nom ne change pas, mais mon email change souvent. Après plusieurs années, j’ai périodiquement revisité un site et je suis resté coincé ... quelle était mon adresse e-mail il ya deux ans ???

Limitez-vous aux adresses e-mail utilisées partout dans le monde. En fait, la plupart des sites Web importants les utilisent. Elles sont uniques, ce qui les empêche de chercher difficilement un nom qui n'est pas utilisé par d'autres personnes, sans oublier leurs adresses e-mail. (dans la plupart des cas au moins :)), ce qui ne ressemble pas aux noms d’utilisateurs qu’ils ne cesseront d’oublier s’ils ne visitent pas votre site très souvent.

Ne vous inquiétez pas de leur longueur, car tous les principaux navigateurs (IE, FF, etc.) proposent la saisie semi-automatique pour les formulaires activés par défaut. Vous devez donc taper les premières lettres de votre e-mail et recevoir un message. liste déroulante (c.-à-d. liste de complétion automatique) où vous cliquez simplement pour entrer tout le courrier électronique; personnellement, je ne tape presque jamais l'adresse électronique au complet, je tape toujours les premières lettres, puis sélectionnez le courrier électronique dans la liste déroulante de saisie semi-automatique. En outre, si vous autorisez la mémorisation des utilisateurs (à l'aide de la case à cocher Mémoriser mes informations et de cookies persistants), ce sera une autre raison pour ne pas s'en inquiéter.

Je ne connais pas votre application, mais la plupart des applications ne sont généralement pas souhaitables pour les utilisateurs ayant plusieurs comptes.

Un inconvénient pourrait être que, s’il s’agit d’une adresse électronique, les informations de connexion et les attaques par force brute peuvent être devinées. Ce n’est pas vraiment un gros problème, car sur la plupart des sites, les noms de connexion sont affichés publiquement.

Le plus gros avantage est que les connexions sont plus faciles à mémoriser de cette façon.

Une bonne configuration consiste à exiger un nom d'utilisateur et un email. Permettre à l'utilisateur de se connecter avec une adresse électronique ou un nom d'utilisateur est très convivial. Un avantage supplémentaire est que l'utilisateur peut modifier son adresse e-mail. Cela autoriserait également plusieurs comptes pour un seul email.

Pour résoudre votre problème, le courrier électronique est trop long à saisir à chaque fois. J'ai implémenté la bibliothèque 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 ..

Il suffit ensuite de modifier la méthode de connexion pour autoriser le courrier électronique ou la connexion à correspondre au mot de passe.

Cela fonctionne exactement comme google ou mobileme. Un utilisateur peut choisir de taper simplement son nom d'utilisateur de messagerie (c'est-à-dire, nom d'utilisateur à la place de nomutilisateur@gmail.com.)

Si vous ne vous souciez pas de forcer vos utilisateurs à se connecter à votre application avec Facebook ou un autre réseau social (la plupart des gens ne semblent pas s'en soucier), vous pouvez simplement utiliser l'e-mail de leur réseau social comme identifiant d'utilisateur. 'lors de la référence à d'autres tables / documents (MySQL, Mongo, etc.).

J'ai remarqué que l'avantage d'utiliser les connexions aux médias sociaux est que tout le réseau de sécurité a pris en charge la sécurité, y compris le fait de ne pas autoriser deux utilisateurs à avoir le même email ou le même nom d'utilisateur dans leur base de données, ce qui vous évite les tracas de avoir à coder pour tout cela. Ceci est juste ma préférence personnelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top