ycom icon indicating copy to clipboard operation
ycom copied to clipboard

Userobjekt kann ggf. nicht aktualisiert werden, (login_tries)

Open chip75 opened this issue 4 years ago • 4 comments

Beim Versuch die login_tries zu aktualisieren, wird imho der Password Hash verglichen. Dies führt zumeist zu keinem Problem, da der Password Algorithmus die Standard Rules meist erfüllt (Gross/Klein, Anzahl Zeichen, Sonderzeichen) Jedoch ist es nicht garantiert und abh. von den Regeln könnte es hier ein Problem geben.

Mir ist es aufgefallen, da ich noch einen alten md5 Hash nutze, den ich nach erfolgreichen Login mit dem Kennwort auf Basis des neuen Algorithmus aktualisiere. Nur solange der User sich nicht mindestens einmal erfolgreich angemeldet hat, wird immer der md5 mit den Password Rules verglichen und dies schlägt fehl und das User Save schlägt fehl https://github.com/yakamara/redaxo_ycom/blob/7849683053902cb1e2bc47eaffc34762fa6b5155/plugins/auth/lib/ycom_auth.php#L185

Man müsste vermutlich den Password Rule Vergleich an dieser Stelle irgendwie deaktivieren, da es kein Sinn mach einen Hash mit Password Klartext Regeln zu vergleichen

chip75 avatar Jan 10 '22 14:01 chip75

@chip75 du kannst die MD5-Passwörter ja alle aktualisieren - und das sollte man ja auch dringlichst, oder?

AWqxKAWERbXo avatar Jan 10 '22 16:01 AWqxKAWERbXo

Prinzipiell stimmt das natürlich. Nur habe ich die Klartext Kennwörter natürlich nicht. Somit kann ich diese nicht konvertieren, bzw. erst dann sobald der User sich wieder anmeldet. Dann wird es ja auch durchgeführt. Ist bisher auch ein SHA1 sehe ich gerade. D.h. md5 ist es immerhin nicht ;). Darum geht es in diesem Fall auch nur nebenläufig. Es ist einfach nicht korrekt einen Hash gegen Passwort Regel zu prüfen. Das macht nicht viel Sinn und kann zu Problemen führen.

chip75 avatar Jan 10 '22 16:01 chip75

Kapiert, geht dir um was anderes. Dennoch: es wird der Hash eines Hashs aus Kompatibilitätsgründen verwendet, du kannst sie konvertieren:

rex_login::passwordHash($user->getValue('password'), $isPreHashed)

AWqxKAWERbXo avatar Jan 10 '22 19:01 AWqxKAWERbXo

@chip75 ist das Issue für dich damit gelöst?

AWqxKAWERbXo avatar Sep 01 '22 06:09 AWqxKAWERbXo

login_tries ++ ist nun auf rex_sql umgebaut, damit es hier keine KOnflikte gibt. Auch Dinge wie last_update_time etc würden sonst beeinflusst werden. zusätzlich ist nun im Log auch ein Eintrag bei einem Fehlversuch.

dergel avatar Dec 30 '22 09:12 dergel