diff --git a/login.php b/login.php index 25c2a2f9..5025b8dc 100644 --- a/login.php +++ b/login.php @@ -1,8 +1,8 @@ (NOW() - INTERVAL 5 MINUTE)"); + $failed_login_count = mysqli_num_rows($ip_failed_logins_sql); - // Setup encryption session key - if(isset($row['user_specific_encryption_ciphertext'])){ - $user_encryption_ciphertext = $row['user_specific_encryption_ciphertext']; - $site_encryption_master_key = decryptUserSpecificKey($user_encryption_ciphertext, $password); - generateUserSessionKey($site_encryption_master_key); + // Login brute force check + if($failed_login_count >= 10){ + + // Logging + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Login', log_action = 'Failed', log_description = 'Failed login attempt due to IP lockout', log_ip = '$ip', log_user_agent = '$user_agent', log_created_at = NOW()"); + + // Send an alert only count hits 10 to reduce flooding alerts (using 1 as "default" company) + if($failed_login_count == 10){ + mysqli_query($mysqli,"INSERT INTO alerts SET alert_type = 'Lockout', alert_message = '$ip was locked out for repeated failed login attempts.', alert_date = NOW(), company_id = '1'"); + } + + // Inform user + $response = '