Ergebnis 1 bis 4 von 4

Thema: Username case insensitive beim Registieren / Login

  1. #1
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    75

    Standard Username case insensitive beim Registieren / Login

    Hallo zusammen,

    ich habe eine kurze Frage zum Thema Benutzernamen und dem Registrieren (Contao 3.5).
    Benutzername und Kennwort sind ja case-sensitive, es wird also Groß- und Kleinschreibung berücksichtigt.
    Wäre es denkbar bzw. unter Aspekten der Sicherheit unbedenklich, beim Benutzernamen diese Überprüfung zu deaktivieren?

    Im Moment kann es ja z.B. einen Benutzer willi123 und einen Benutzer Willi123 geben. Ich würde es gerne so umbauen, dass es nur einen Benutzer willi123 geben kann und dass es bei diesem egal ist, ob er sich mit willi123 oder Willi123 anmeldet. Das Passwort bzw. die Logik hierfür bleibt natürlich unberührt.

    Es geht mir nicht um die technische Umsetzung des Ganzen, sondern darum, ob ich hier einen Denkfehler habe und evtl. Probleme bekommen würde, an die ich im Moment nicht denke.

    Danke und viele Grüße

  2. #2
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    75

    Standard

    Nachtrag: Ich habe es jetzt testweise mal umgesetzt. Ich habe mir den importUser Hook geschnappt, welcher ausgelöst wird, wenn ein Benutzer beim Login nicht gefunden wird (Benutzer nicht vorhanden oder Benutzername falsch eingegeben) und versuche den Benutzernamen case-insensitive (Groß-/ Kleinschreibung ignorieren) zu finden.
    Um sicher zu gehen, dass Benutzernamen mit dieser Schreibweise einzigartig sind, habe ich das Feld username in der Tabelle tl_member von utf8_bin auf utf8_general_ci umgestellt (case-sensitive vs case-insensitive).

    Der Test funktioniert auch. Existiert Benutzer Willi123, kann man sich nicht mehr mit willi123 registrieren. Eine Anmeldung ist jedoch mit beiden Varianten möglich.
    Sollte sich jemand für die Details der Umsetzung interessieren, weil er vielleicht das Selbe umsetzen möchte, gerne kurz Bescheid geben.

    Sollte jemand einen Punkt kennen, an dem es durch diese Anpassung zu Problemen an anderer Stelle in Contao kommen sollte, wäre ich auch für diesen Hinweis sehr dankbar.

  3. #3
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    1.809

    Standard

    Ich würde sagen, der Weg über den Hook ist zu umständlich:

    Die ursprüngliche Definition des Felds 'username' der Tabelle tl_member ist so:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['username']['sql'] = "varchar(64) COLLATE utf8_bin NULL"
    und "berücksichtigt" wegen COLLATE utf8_bin die Unterscheide zw. Groß- und Kleinschreibung.

    Wenn Du das (in einer eigene Erweiterung oder der zentralen dcaconfig.php) so abänderst:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['username']['sql'] = "varchar(64) COLLATE utf8_general_ci NULL"
    und danach die Datenbank aktualisierst sollte alles erledigt sein. Nebewirkungen sind mir keine bekannt.
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  4. #4
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    75

    Standard

    Stimmt, du hast recht.
    Der Hook würde in diesem Szenario auch gar nicht zum Tragen kommen, da der Benutzername (sofern nicht völlig falsch geschrieben) ja auch gefunden wird.
    Die Anpassung der tl_member sieht bei mir auch genau so aus.

    Vielen Dank für den Hinweis!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •