diff options
author | John Molakvoæ <skjnldsv@users.noreply.github.com> | 2022-01-20 12:35:07 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-20 12:35:07 +0300 |
commit | fd1bcd434c56d9bae998b032001931881c36c78f (patch) | |
tree | b2612f8cfa475280f507b8002398eaa94189c073 | |
parent | 4cf937ad817577717f9171e67fc230e2d1e0f612 (diff) | |
parent | 8db890a6215b30559f26869fa39daafd2109d555 (diff) |
Merge pull request #30760 from nextcloud/backport/30731/stable22
-rw-r--r-- | lib/private/Security/Bruteforce/Throttler.php | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/private/Security/Bruteforce/Throttler.php b/lib/private/Security/Bruteforce/Throttler.php index 6c898cdf7e6..411a8a0763d 100644 --- a/lib/private/Security/Bruteforce/Throttler.php +++ b/lib/private/Security/Bruteforce/Throttler.php @@ -350,9 +350,20 @@ class Throttler { public function sleepDelayOrThrowOnMax(string $ip, string $action = ''): int { $delay = $this->getDelay($ip, $action); if (($delay === self::MAX_DELAY_MS) && $this->getAttempts($ip, $action, 0.5) > self::MAX_ATTEMPTS) { + $this->logger->info('IP address blocked because it reached the maximum failed attempts in the last 30 minutes [action: {action}, ip: {ip}]', [ + 'action' => $action, + 'ip' => $ip, + ]); // If the ip made too many attempts within the last 30 mins we don't execute anymore throw new MaxDelayReached('Reached maximum delay'); } + if ($delay > 100) { + $this->logger->info('IP address throttled because it reached the attempts limit in the last 30 minutes [action: {action}, delay: {delay}, ip: {ip}]', [ + 'action' => $action, + 'ip' => $ip, + 'delay' => $delay, + ]); + } usleep($delay * 1000); return $delay; } |