Ich betrachte einen Code, der Benutzernamen in Kleinbuchstaben umwandelt, bevor sie gespeichert werden. Ich bin 90% sicher, dass das in Ordnung ist, aber gibt es Systeme da draußen, die tatsächlich die Groß- / Kleinschreibung für die Benutzernamen (speziell in der Gesundheitsindustrie) erfordern?
Hinweis: Mein spezieller Code befindet sich nicht am Einstiegspunkt. Wir nehmen Benutzernamen von anderen Systemen. Die Sorge, die ich habe, hängt von diesen Systemen ab (die unter unserer Kontrolle stehen können oder nicht), um uns Benutzernamen im selben Fall (bei der Beschreibung des gleichen Benutzers) konsistent zu übergeben.
Bemerkenswert - der Code ist:
%Vor% Sind alle Benutzernamen in Englisch? Ist dies nur so, dass die Kollatierung in der Datenbank übereinstimmt? Beachten Sie, dass (zumindest in Java) String.toLowerCase()
als String.toLowerCase(Locale.getDefault())
toLowerCase hat nur einen Grund, ein Gebietsschema zu akzeptieren:
da kleiner Buchstabe i einen Punkt in jeder Standardsprache hat, wird der Buchstabe I in ein i mit einem Punkt umgewandelt.
aber auf türkisch gibt es auch einen Großbuchstaben © mit einem Punkt darüber. Das wird in einen kleinen Buchstaben umgewandelt.
Das "normale" türkische Kapital I verwandelt sich in ein kleines ı - ohne einen Punkt.
Also, wenn Ihre türkischen Benutzernamen nicht alle IiI1I1iiII heißen, würde ich mir darüber keine Sorgen machen.
Jede andere Sprache als Türkisch hat eine identische toLowerCaseImplementation. So könnten Sie Locale.ENGLISH oder Locale.GERMAN oder was auch immer auswählen..passen Sie einfach nicht türkisch zu wählen.
Weitere Informationen finden Sie im javadoc Informationen
edit: Danke an utku karatas Ich könnte / kopiere die richtigen Glyphen in diesen Post.
Die Verwendung von case-sensitiven Benutzernamen / Passwörtern ist eine einfache Möglichkeit, die Sicherheit zu erhöhen. Daher stellt sich die Frage, wie wichtig Ihnen Sicherheit und Benutzerfreundlichkeit sind. Denken Sie daran, dass die Art und Weise, wie Sie die Groß- und Kleinschreibung untersuchen, zu Lokalisierungsproblemen führen kann. Wenn Ihnen das aber egal ist, machen Sie sich keine Sorgen.
Wenn Sie den Benutzernamen mit dem Gebietsschema Englisch absenken, kann dies zu Problemen führen. Ich würde vorschlagen, mit der invarianten Kultur weniger zu nehmen.
Kerberos, das auch in Windows-Umgebungen verwendet werden kann, hat Probleme mit der Groß- und Kleinschreibung. Sie können es auf eine bestimmte Weise konfigurieren, um sicherzustellen, dass keine Groß- / Kleinschreibung beachtet wird, aber es kann auch andersherum gehen.
Es hängt vom Kontext ab, aber im Informix-Dialekt von SQL gibt es "Eigentümer" (im Prinzip äquivalent zu einem Schema in Standard-SQL), und wie Sie den Eigentümernamen schreiben, ist wichtig.
%Vor%Die zwei zitierten Namen sind definitiv verschieden; Die beiden Namen ohne Namen werden auf denselben Namen abgebildet, der (abhängig vom Datenbankmodus) einer der beiden anderen Namen sein kann. Es gibt einen Code, der die Konvertierung von Groß- und Kleinschreibung für die Namen (ohne Anführungszeichen) übernimmt. Glücklicherweise müssen Sie den Namen meistens nicht angeben, und wenn Sie das tun, schreiben Sie den Namen ohne Anführungszeichen, und alles funktioniert. oder Sie schreiben den Namen mit Anführungszeichen und sind konsistent und es funktioniert alles. Gelegentlich müssen Leute wie ich die Details wirklich verstehen, um Programme trotz aller Reifen vernünftig arbeiten zu lassen.
Auch (wie Stephen bemerkte) Unix-Logins unterscheiden zwischen Groß- und Kleinschreibung und waren schon immer. Ich glaube, dass Windows-Logins meistens nicht zwischen Groß- und Kleinschreibung unterscheiden - aber ich experimentiere nicht damit (es gibt zu viele Möglichkeiten, sich über Windows zu ärgern, ohne dem Spiel diese Art Tricks hinzuzufügen).
Wenn Sie wirklich jemanden mit Unix verwechseln wollen, geben Sie ihm einen numerischen Benutzernamen (z. B. 123), aber geben Sie ihm eine andere UID (z. B. 234).
Ich habe noch nie ein System kennengelernt, das die Groß- und Kleinschreibung bei Benutzernamen beachtet (und auch nicht möchte).
Höchstwahrscheinlich erzwingt der Code am Eintrittspunkt Kleinbuchstaben, um spätere Probleme mit der Groß- und Kleinschreibung zu vermeiden.
Tags und Links user-interface security