Giới hạn số lần đăng nhập sai trong WordPress bằng code – Không cần plugin

Việc hạn chế số lần đăng nhập sai là bước quan trọng giúp tăng cường bảo mật cho WordPress. Thay vì cài thêm plugin như Limit Login Attempts Reloaded hay Wordfence, bạn hoàn toàn có thể tự thực hiện bằng một đoạn code PHP đơn giản – hiệu quả mà không gây nặng trang.

Giới hạn số lần đăng nhập sai trong WordPress bằng code – Không cần plugin

Cách hoạt động của đoạn mã

Code sử dụng transient API của WordPress để ghi lại số lần đăng nhập sai theo địa chỉ IP. Nếu vượt quá giới hạn (mặc định là 5 lần), người dùng sẽ bị tạm khóa đăng nhập trong khoảng thời gian nhất định (mặc định là 15 phút).

Đoạn code giới hạn đăng nhập sai

// Thêm vào file functions.php trong theme của bạn
function custom_limit_login_attempts($user, $username, $password) {
    $ip = $_SERVER['REMOTE_ADDR'];
    $key = 'failed_login_' . md5($ip);
    $attempts = get_transient($key);

    if ($attempts && $attempts['count'] >= 5) {
        return new WP_Error('too_many_attempts', __('Bạn đã đăng nhập sai quá nhiều lần. Vui lòng thử lại sau 15 phút.'));
    }

    if (is_wp_error($user)) {
        $count = isset($attempts['count']) ? $attempts['count'] + 1 : 1;
        set_transient($key, ['count' => $count], 15 * MINUTE_IN_SECONDS);
    } else {
        delete_transient($key); // Xoá khi đăng nhập đúng
    }

    return $user;
}
add_filter('authenticate', 'custom_limit_login_attempts', 30, 3);

Tuỳ chỉnh nâng cao

  • Thay đổi số lần sai: thay 5 bằng số mong muốn ở dòng $attempts['count'] >= 5
  • Thay đổi thời gian khoá: chỉnh 15 * MINUTE_IN_SECONDS (ví dụ: 30 * 60 cho 30 phút)

Lưu ý khi dùng

  • Đây là giới hạn theo IP – nếu người dùng dùng IP động (mobile, 4G), có thể gặp phiền.
  • Không nên áp dụng với trang web có đăng nhập công khai đông đảo (hãy dùng reCAPTCHA hoặc xác thực hai lớp).
  • Chỉ áp dụng với giao diện đang kích hoạt – nếu bạn đổi theme, cần sao chép lại đoạn code.

Kết luận

Với vài dòng PHP đơn giản, bạn có thể bảo vệ website WordPress khỏi các cuộc tấn công brute-force mà không cần cài plugin. Đây là cách nhẹ nhàng, hiệu quả và lý tưởng cho các trang nhỏ hoặc tối ưu hiệu suất.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...