Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ycom Auth Rule Interval #487

Closed
nsd0hmasri opened this issue May 27, 2024 · 1 comment
Closed

Ycom Auth Rule Interval #487

nsd0hmasri opened this issue May 27, 2024 · 1 comment
Milestone

Comments

@nsd0hmasri
Copy link

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?

@dergel
Copy link
Member

dergel commented Aug 29, 2024

Sorry für das späte Reagieren. Das ist richtig was du da entdeckt hast. Ich musste noch ein Login Try Date ergänzen. Vielen Dank für den Hinweis !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants