You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ich habe "15 Minuten nach 5 Versuchen gesperrt" eingestellt. Das funktioniert nach mehreren Versuchen aber nur, wenn die Login tries genau 5 oder 10 oder 15 etc. sind. Bei 6, 7 ist der Login auch vor den 15 Minuten wieder erfolgreich.
Ich denke der Code in ycom_auth_rules.php ist dafür zuständig:
case 'interval':
if (0 == $loginTries || 0 != $loginTries % $rule['tries']) {
return true;
}
break;
In meinem Fall ist diese (0 != $loginTries % $rule['tries']) Aussage nur false, wenn Login tries 5, 10, 15 etc. ist. Wenn also versucht wird bei 5 fehlgeschlagenen sich noch einmal einzuloggen wird in ycom_auth hier reingengangen (was ja auch korrekt ist)
if (!$auth_rules->check($loginUser, $authRuleConfig)) {
$loginUser->increaseLoginTries()->save();
throw new rex_exception('Login failed - Auth Rules');
}
Allerdings werden die tries dann um 1 erhöht und beim nächsten Versuch wird die Regel umgangen, da "0 != 6 % 5" true ist und es direkt zurück von ycom_auth_rules zu ycom_auth geht ohne die Zeit zu prüfen.
Wäre es da nicht generell besser einfach zu prüfen ob $loginTries < $rule['tries'] íst?
case 'interval':
if (0 == $loginTries || $loginTries < $rule['tries']) {
return true;
}
break;
Oder habe ich etwas übersehen?
The text was updated successfully, but these errors were encountered:
Ich habe "15 Minuten nach 5 Versuchen gesperrt" eingestellt. Das funktioniert nach mehreren Versuchen aber nur, wenn die Login tries genau 5 oder 10 oder 15 etc. sind. Bei 6, 7 ist der Login auch vor den 15 Minuten wieder erfolgreich.
Ich denke der Code in ycom_auth_rules.php ist dafür zuständig:
In meinem Fall ist diese (0 != $loginTries % $rule['tries']) Aussage nur false, wenn Login tries 5, 10, 15 etc. ist. Wenn also versucht wird bei 5 fehlgeschlagenen sich noch einmal einzuloggen wird in ycom_auth hier reingengangen (was ja auch korrekt ist)
Allerdings werden die tries dann um 1 erhöht und beim nächsten Versuch wird die Regel umgangen, da "0 != 6 % 5" true ist und es direkt zurück von ycom_auth_rules zu ycom_auth geht ohne die Zeit zu prüfen.
Wäre es da nicht generell besser einfach zu prüfen ob $loginTries < $rule['tries'] íst?
Oder habe ich etwas übersehen?
The text was updated successfully, but these errors were encountered: