Programmieren um die Groß- und Kleinschreibung von E-Mail-Adressen

8

Wie viele Websites verwenden wir E-Mail-Adressen als Benutzer-IDs für Anmeldungen.

RFC 5321 [ # 2.3.11 ] besagt, dass die lokalen Teile von E-Mail-Adressen:

MUSS nur von dem im Domänenteil der Adresse angegebenen Host interpretiert und Semantik zugewiesen werden

Dies bedeutet, dass Anwendungen, die E-Mail-Adressen verarbeiten, nicht erraten können, wie GMail beispielsweise Punkte bei der Ermittlung von Benutzernamen ignoriert . Dies bedeutet auch, dass Anwendungen lokale Teile der E-Mail-Adresse als Groß- und Kleinschreibung behandeln müssen, da auf diese Weise der lokale Teil angegeben wird .

Allerdings sind Benutzer dumm , und in einem aktuellen Fall ein Benutzer, der mit einer Groß E - Mail - Adresse angemeldet hatte (und hatte erfolgreich empfangen und klickte auf das Bestätigungs - E) fand sie nicht in der Lage waren , mich anzumelden , weil sie nun das Kleinformat ihrer E - Mail wurden mit Adresse.

Ich bin noch nie auf einen E-Mail-Server gestoßen, der in seinen Posteingängen die Groß- und Kleinschreibung berücksichtigt. Ich bezweifle nicht, dass es irgendwo welche gibt, aber ich frage mich, ob es keinen größeren Vorteil hat, die Groß- und Kleinschreibung für unsere E-Mail-Benutzernamen zu verringern, als Probleme bei der Beibehaltung zu haben.

Ich würde nicht so weit gehen, die Punktverarbeitung von GMail oder irgendeine Art von Plus-Adressierung zu emulieren , da diese nicht so allgegenwärtig oder automatisch angenommen zu sein scheinen wie die Groß- und Kleinschreibung. Ich bin mir jedoch bewusst, dass es sich nicht um ein Schwarz-Weiß-Szenario handelt. Daher bin ich interessiert, ob jemand weiß, wie weit verbreitet E-Mail-Adressen sind, bei denen zwischen Groß- und Kleinschreibung unterschieden wird.

Gareth
quelle
5
Zwei Antworten bereits vom selben RFC.
Stellen
Auf diese Frage gibt es zwei Antworten. Verwenden Sie nicht die E-Mail-Adresse als Benutzernamen. Verwenden Sie dieselbe Zeichenfolgenmanipulation sowohl für die Benutzereingabe als auch für den in der Datenbank gespeicherten Wert. Wenn sie zu diesem Zeitpunkt nicht übereinstimmen, sind sie nicht gleich.
Ramhound
Yahoo hatte früher wirklich, Groß- und Kleinschreibung beachtende Benutzernamen. Wie Mitte der 90er Jahre. Das Hacken von Yahoo-Spielen hat viel Spaß gemacht. . .
Wyatt Barnett
Warum erzwingen Sie nicht einfach die Groß- und Kleinschreibung Ihrer Benutzer-IDs, indem Sie sie während der Anmeldung in einen internen Standardfall konvertieren? Ihre Datenbank kann weiterhin die E-Mail-Adresse speichern, bei der zwischen Groß- und Kleinschreibung unterschieden wird, wenn Sie dem Benutzer eine E-Mail senden müssen (zur Kennwortwiederherstellung usw.). Es scheint äußerst unwahrscheinlich, dass Sie zwei verschiedene Benutzer erhalten, deren E-Mail-Adressen sich nur durch den Fall ihres lokalen Teils unterscheiden.
Mark Booth
@YannisRizos Ich habe es gelesen, aber ein SOLLTE in RFCs immer durch ein MUSS übertrumpft werden. Die Tatsache, dass Hosts etwas tun SOLLTEN, bedeutet, dass dies möglicherweise nicht der Fall ist, und ich wollte nur die Bestätigung, dass das SOLLTE in Wirklichkeit etwas weiter verbreitet ist, als es die Definition impliziert.
Gareth

Antworten:

17

http://tools.ietf.org/html/rfc5321#page-42 (Hervorhebung hinzugefügt):

Während die obige Definition für den lokalen Teil relativ zulässig ist , sollte ein Host , der den Empfang von E-Mails erwartet , für maximale Interoperabilität vermeiden, Postfächer zu definieren, in denen der lokale Teil das Formular für die angegebene Zeichenfolge benötigt (oder verwendet) oder in denen der lokale Teil der Fall ist -empfindlich.

Der RFC rät von der Groß- und Kleinschreibung ab. Außerdem habe ich persönlich noch nie einen Host gesehen, bei dem zwischen Groß- und Kleinschreibung unterschieden wird.

E-Mail-Adressen ohne Berücksichtigung der Groß- und Kleinschreibung sind ein De-facto-Standard.

Daher denke ich, dass Sie zu Recht sagen, dass das Löschen der Groß- und Kleinschreibung für Ihre E-Mail-Benutzernamen einen größeren Vorteil hat, als dass es Probleme gibt, diese zu behalten.

Quentin-Starin
quelle
5

Absatz 2.4. Allgemeine Syntaxprinzipien und Transaktionsmodell von RFC 5321-Zuständen (Schwerpunkt Mine):

Daher MÜSSEN SMTP-Implementierungen darauf achten, dass der Fall von lokalen Postfachteilen erhalten bleibt. Insbesondere für einige Hosts unterscheidet sich der Benutzer "Smith" vom Benutzer "Smith". Das Ausnutzen der Groß- und Kleinschreibung von lokalen Postfachteilen beeinträchtigt jedoch die Interoperabilität und wird nicht empfohlen. Postfachdomänen folgen normalen DNS-Regeln und unterscheiden daher nicht zwischen Groß- und Kleinschreibung.

AFAIK Alle gängigen Mail-Hosts vermeiden E-Mails, bei denen zwischen Groß- und Kleinschreibung unterschieden wird, und das sollten Sie auch. Ich habe keinen Dienst verwendet, bei dem die Groß- und Kleinschreibung für E-Mails angenommen wurde, und ich hasse es, überrascht zu sein.

Yannis
quelle
4

Was Sie tun sollten, ist, die für das Senden von E-Mails angegebene E-Mail-Adresse zu verwenden und sie in etwas weniger Fehleranfälliges umzuwandeln, wenn Sie sie als Kontokennung verwenden oder zumindest als Fallback verwenden, wenn Sie keine genaue Übereinstimmung finden.

Dies wäre ein sehr grobes Analogon zu dem, was die Soundex- Algorithmus für Wörter oder Namen auf Englisch tut, indem die Dinge entfernt werden, die Mehrdeutigkeiten erzeugen. Beispielsweise können Sie die gesamte Adresse in Kleinbuchstaben konvertieren und Unteradressen und nicht alphanumerische Symbole aus dem lokalen Teil entfernen (z. B. [email protected]würde sich auf reduzieren [email protected]). Wenn Sie dieselbe Transformation auf eine Adresse anwenden, die während der Anmeldung verwendet wird, erhalten Sie eine Übereinstimmung für mehr Varianten, und der Benutzer ist nicht klüger, da jede andere Verwendung der Adresse die bereitgestellte Version wäre.

Aus technischer Sicht macht dies Ihre Anmeldungen geringfügig einfacher zu Brute Force. Wenn dies ein Problem darstellt, können Sie jederzeit eine genaue Übereinstimmung für die Anmeldungen verlangen und die Option "Login oder Passwort vergessen" angeben, die beim Nachschlagen des Kontos tolerant ist, da jede von Ihnen gesendete E-Mail an die "richtige" Adresse gesendet wird.

Wenn eine Adresse wie die oben genannte es bis zur Anmeldung und Überprüfung schafft, halte ich es nicht für unangemessen, andere abzulehnen, die sich genauso wie Duplikate transformieren. Ich würde postulieren , dass jede Website , die Abtretungs lokale Adressen wie Lance.Boyle, LanceBoyle, lance.boyleund lanceboyleund behandelt sie als verschiedene könnte die Quelle der anderen Arten von Schwierigkeiten.

Blrfl
quelle
Ich bin mir nicht sicher, ob ich so weit gehen würde, die Punkte zu entfernen - ich denke, ich würde bei der Überprüfung der Anmeldungen die Groß- und Kleinschreibung nicht berücksichtigen -, aber im Grunde würde ich dies auch vorschlagen.
Murph
1
Ich würde die Punkte definitiv nicht abstreifen. Beim Googeln werden Personen mit dem Namen "Robert Oot" und "Richard Oot" gefunden, die möglicherweise E-Mail-Adressen wie "[email protected]" haben. Entfernen Sie die Punkte und Sie könnten einen Konflikt haben. :-)
Carson63000
Dieser spezielle Konflikt ist nicht wahrscheinlich, da der Superuser sich wahrscheinlich nicht für Konten auf Websites anmeldet, aber Sie haben einen Punkt. Eine Möglichkeit wäre, nur Punkte von Domänen zu entfernen, von denen bekannt ist, dass sie keine Rolle spielen und die Quelle vieler Benutzer sein könnten, wie z gmail.com.
Blrfl