Tutoriales Código para Limitar los intentos de inicio de sesión fallidos en WP

Aprende paso a paso con nuestros tutoriales detallados y fáciles de seguir 🛠️. Desde WordPress y desarrollo web 🖥️ hasta estrategias de marketing digital 📊 y trucos de inteligencia artificial 🤖. ¡Domina nuevas habilidades y potencia tu conocimiento con nuestras guías expertas! 🚀

GarageWP

Explorador Activo

Registrado
11 Oct 2023
Mensajes
33
Se coloca en el functions.php o en el plugin que uses para códigos personalizados.

Lo estoy usando en mi web, al cuarto intento de querer colocar usuario y contraseña, cuando es incorrecto/no registrado los bloquea.

Los campos a modificar esta señalados por comentarios.

Código:
// Limitar los intentos de inicio de sesión fallidos

function limit_login_attempts() {
    $max_attempts = 3; // cambiar cantidad intentos
    $lockout_time = 600; // 10 minutos
    if (!session_id()) {
        session_start();
    }

    if (isset($_SESSION['failed_attempts']) && $_SESSION['failed_attempts'] >= $max_attempts) {
        $last_failed_time = $_SESSION['last_failed_time'] ?? time();
        $time_diff = time() - $last_failed_time;
        if ($time_diff < $lockout_time) {
            wp_die('Has alcanzado el límite de intentos de inicio de sesión. Por favor, inténtalo de nuevo en 10 minutos.'); // Cambiar texto mensaje predefinido
        } else {
            $_SESSION['failed_attempts'] = 0;
        }
    }

    if (isset($_POST['wp-submit'])) {

        $user = wp_authenticate($_POST['log'], $_POST['pwd']);

        if (is_wp_error($user)) {

            $_SESSION['failed_attempts'] = ($_SESSION['failed_attempts'] ?? 0) + 1;

            $_SESSION['last_failed_time'] = time();
        }
    }
}

add_action('login_init', 'limit_login_attempts');

Captura de pantalla (7).png
 
Volver
Arriba Abajo