diff options
author | Joas Schilling <coding@schilljs.com> | 2022-01-18 10:10:19 +0100 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2022-01-19 11:51:43 +0000 |
commit | 713342cd23961a96a0a3709ccdde374a07716750 (patch) | |
tree | 4cf27c3023308f9899e0e12d108785f3ac1789ed | |
parent | f5dd452d5f76d4460b86e7eed1e41f87e80cfc64 (diff) | |
download | nextcloud-server-713342cd23961a96a0a3709ccdde374a07716750.tar.gz nextcloud-server-713342cd23961a96a0a3709ccdde374a07716750.zip |
Log bruteforce throttle and blocking
Signed-off-by: Joas Schilling <coding@schilljs.com>
-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 fa4c58e4559..abbe77c6637 100644 --- a/lib/private/Security/Bruteforce/Throttler.php +++ b/lib/private/Security/Bruteforce/Throttler.php @@ -354,9 +354,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; } |