255 || strlen($password) > 255) { echo 'fail[#]'; exit; } // Rate limiting básico (máximo 5 intentos por minuto) $rateLimitKey = 'login_attempts_' . $_SERVER['REMOTE_ADDR']; if (!isset($_SESSION[$rateLimitKey])) { $_SESSION[$rateLimitKey] = ['count' => 0, 'time' => time()]; } $attempts = $_SESSION[$rateLimitKey]; if ($attempts['count'] >= 5 && (time() - $attempts['time']) < 60) { echo 'fail[#]'; exit; } // Incrementar contador de intentos $_SESSION[$rateLimitKey]['count']++; if (time() - $_SESSION[$rateLimitKey]['time'] > 60) { $_SESSION[$rateLimitKey] = ['count' => 1, 'time' => time()]; } // Realizar login $empresa->setEmail($email); $empresa->setPassword($password); if(!$empresa->DoLogin()) { // Si el login es exitoso, resetear contador if($empresa->Util()->GetError()){ $empresa->Util()->PrintErrors(); } echo 'fail[#]'; } else { // Resetear contador de intentos en login exitoso unset($_SESSION[$rateLimitKey]); echo 'ok[#]ok'; } ?>