yakamara / ycom

Community AddOn für REDAXO
MIT License
58 stars 37 forks source link

Authentifizierungsregel 'pause' funktioniert nicht #475

Closed paddle07 closed 3 months ago

paddle07 commented 7 months ago

Beim Testen nach Update auf YCom 4.2.0 (Github-Version) bin ich bei den Regeln "User wird für x Minuten nach jeweils x Login-Versuchen gesperrt" (pause) auf folgendes Problem gestossen: Der User wird nach 5/10 Loginversuchen nicht gesperrt und kann sich z.B. beim 12. Versuch ohne Probleme mit dem richtigen Passwort einloggen.

In der Klasse plugins/auth/lib/ycom_auth_rules.php wird auf Zeile 88 der Value 'last_login_time' abgefragt aber dieser wird bei einem falschen Loginversuch nicht gesetzt. Methode increaseLoginTries() in lib/ycom_user.php um $this->setValue('last_login_time', rex_sql::datetime(time())); erweitern?

Und muss in plugins/auth/lib/ycom_auth.php bei der Auth-Abfrage auf Zeile 217 die Anzahl Logins erhöht werden? Wenn login_tries > als Regel retourniert die Methode check() in Klasse plugins/auth/lib/ycom_auth_rules.php wieder true.

Nach erfolgreichem Login sollte der Wert login_tries wieder auf 0 gesetzt werden, oder? In Klasse plugins/auth/lib/ycom_auth.php auf Zeile 358 $me->setValue('login_tries', 0); hinzufügen ...

Regeln mit User deaktivieren funktionieren.

dergel commented 7 months ago

Ich glaube, das hängt mit einem Bug zusammen, dass last_login und last_action nicht richtig gespeichert wurden. Kannst du das mit der aktuellen GitHub Version testen?

paddle07 commented 7 months ago

Nein, funktioniert auch nicht mit der aktuellen Github Version ...

paddle07 commented 7 months ago

... also ja, mit den oben erwähnten Anpassungen funktioniert's mit der aktuellen Github Version ... (assign übersehen ;))