Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Bạn có lo lắng tin tặc đang cố đăng nhập vào trang WordPress? Bạn hoàn toàn đúng.

Tin tặc dùng phương pháp thử và sai để đoán thông tin đăng nhập và xâm nhập trang WordPress. Trên trang WordPress, trang đăng nhập là trang bị tấn công nhiều nhất.

Khi tin tặc xâm nhập khu vực admin dashboard, họ có kiểm soát hoàn toàn trang web. Chúng sẽ cài mã độc, backdoor, biến dạng trang, quảng cáo và bán hàng bất hợp pháp, đánh cắp thông tin cá nhân người dùng, spam người truy cập và thực hiện hoạt động độc hại khác.

May mắn thay, bạn có thể bảo vệ trang đăng nhập bằng cách giới hạn số lần thử đăng nhập cho phép người dùng nhập thông tin đăng nhập đúng. Trong hướng dẫn này, chúng tôi sẽ chỉ cách thiết lập giới hạn lần đăng nhập trên trang WordPress.

TL;DR: Bằng cách giới hạn lần đăng nhập trên trang WordPress, bạn ngăn chặn tin tặc cố gắng xâm nhập. Cách dễ dàng và hiệu quả nhất bật tính năng này là dùng plugin. Cài đặt MalCare trên trang web. Nó đi kèm tường lửa và bảo vệ đăng nhập. Điều này bảo vệ trang web khỏi tấn công brute force.

WordPress Limit Login Attempts (Giới hạn lần đăng nhập) là gì?

Mặc định, WordPress cho phép số lần đăng nhập không giới hạn. Bạn có thể thử bao nhiêu tổ hợp tên người dùng và mật khẩu tùy thích.

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Tin tặc biết điều này và khai thác cài đặt này. Trước tiên, họ biên soạn cơ sở dữ liệu tên người dùng và mật khẩu thường dùng, cùng dữ liệu đánh cắp hoặc mua. Tiếp theo, họ lập trình bot truy cập trang WordPress và thử hàng nghìn tổ hợp trong vài phút.

Khi làm vậy, tin tặc xâm nhập được nhiều trang WordPress. Điều này gọi là Tấn công Brute Force vì chúng đập vào trang web với hàng nghìn yêu cầu đăng nhập trong vài phút.

Dùng phương pháp hack này, tin tặc có tỷ lệ thành công khá tốt (khoảng 10%) do lớn phần người dùng WordPress đặt thông tin đăng nhập yếu. Mặc dù 10% nghe thấp, nhưng với hàng triệu trang WordPress, họ hack hàng nghìn trang trong tích tắc.

Bằng cách giới hạn số lần đăng nhập, bạn có thể dừng tin tặc và bot của họ ngay tại chỗ.

Người dùng sẽ được cấp số lần giới hạn để nhập đúng thông tin đăng nhập. Ví dụ, bạn cho 3 lần thử. Nếu người dùng nhập sai cả 3 lần, họ sẽ bị khóa tài khoản.

Họ sẽ được đưa ra các tùy chọn khôi phục thông tin đăng nhập như:

  1. Liên hệ quản trị viên.
  2. Dùng tùy chọn 'quên mật khẩu' để đặt lại mật khẩu bằng cách trả lời câu hỏi.
  3. Xác minh danh tính qua Xác thực OTP hoặc email.
  4. Giải captcha để chứng minh họ là con người không phải bot.

Khi bot thử đăng nhập 3 lần, chúng sẽ gặp chướng ngại vật này. Chúng không thể tiến xa hơn và chuyển sang mục tiêu khác.

Do đó, biện pháp bảo mật này bảo vệ trang web khỏi tin tặc và ngăn ngừa rắc rối. Tiếp theo, chúng tôi chỉ cách thiết lập giới hạn lần đăng nhập trên WordPress.

Bạn có biết trang đăng nhập WordPress là trang bị tấn công nhiều nhất trên trang web? Click to Tweet

Cách Giới Hạn Lần Đăng Nhập Trên Trang WordPress?

Có hai cách giới hạn lần đăng nhập trên trang WordPress:

  1. Dùng plugin (dễ dàng)
  2. Thủ công (khó khăn) 

Chúng tôi sẽ chỉ cách dùng plugin trước vì đơn giản, nhanh và không rủi ro lỗi.

1. Giới Hạn Lần Đăng Nhập Dùng Plugin 

Có một số plugin cho phép giới hạn đăng nhập trên WordPress. Vậy làm sao chọn plugin đúng?

Tìm plugin dễ thiết lập và tự động hóa quy trình. Ngoài ra, đảm bảo plugin cung cấp báo cáo về lần thử bị chặn để bạn thấy plugin có thực sự hoạt động.

Chúng tôi chọn MalCare Security Plugin minh họa cách giới hạn lần đăng nhập. Nó đáp ứng yêu cầu trên. Nó cũng vượt ra ngoài chỉ giới hạn đăng nhập và bảo vệ trang web mọi lúc.

Với MalCare, trang web sẽ có giới hạn đăng nhập dựa trên CAPTCHA. Nghĩa là nếu người dùng nhập sai thông tin đăng nhập quá 3 lần, họ phải giải CAPTCHA.

Sau khi giải CAPTCHA, người dùng có thể thử đăng nhập lại. Hoặc dùng tùy chọn Quên mật khẩu? để lấy lại thông tin.

Hãy bắt đầu:

Bước 1: Cài đặt MalCare trên trang web. Kích hoạt plugin và truy cập từ bảng điều khiển WordPress.

Bước 2: Nhập địa chỉ email và chọn Secure Site Now (Bảo mật ngay).

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Bước 3: MalCare sẽ chuyển bạn đến bảng điều khiển độc lập nơi nó tự động chạy quét trên trang web.

Bước 4: Giới hạn lần đăng nhập được bật tự động trên trang web. Bây giờ bạn có thể thắc mắc làm sao dùng WordPress Limit Login Attempts?

Nếu bạn thử đăng nhập sai thông tin, bạn sẽ bị chặn thử lại.

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Khi bạn chọn Click here (Nhấp vào đây), bạn sẽ thấy CAPTCHA như sau:

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Sau khi giải CAPTCHA, bạn có thể đăng nhập lại. Nếu không nhớ thông tin, dùng tùy chọn Quên mật khẩu? .

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Xong. Bạn đã giới hạn lần đăng nhập thành công. Ngoài ra, MalCare cũng dựng tường lửa mạnh chặn bot xấu và lưu lượng độc hại truy cập trang web. Nó cung cấp báo cáo tất cả lần thử đăng nhập. Bạn truy cập trên bảng điều khiển:

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Bạn thấy lần thử thất bại và thành công. Bạn cũng thấy những lần MalCare nhận diện là đáng ngờ và chặn tự động.

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Nếu plugin WordPress không phải phương pháp bạn muốn, chúng tôi đã chi tiết cách triển khai WordPress Limit Login Attempts không dùng plugin. Nhưng phương pháp này phức tạp và dễ lỗi, hãy thận trọng.

2. Giới Hạn Lần Đăng Nhập Thủ Công

Bạn có thể thêm bảo vệ giới hạn đăng nhập bằng cách chèn thủ công đoạn mã vào file WordPress. Tuy nhiên, chúng tôi phải cảnh báo: mỗi lần thay đổi thủ công file WordPress, bạn rủi ro làm hỏng trang web. Lỗi nhỏ nhất dẫn đến vấn đề lớn.

Nếu bạn muốn tiếp tục phương pháp này, chúng tôi mạnh mẽ khuyến nghị sao lưu hoàn chỉnh trang web. Nếu có sự cố, bạn khôi phục nhanh bản sao lưu và quay lại bình thường. Bạn có thể sao lưu dễ dàng bằng cài plugin sao lưu BlogVault hoặc chọn một trong plugin sao lưu tốt nhất.

Khi đã có bản sao lưu, làm theo các bước:

Bước 1: Đăng nhập tài khoản hosting, truy cập cPanel. Chọn File Manager.

Bước 2: Mở thư mục public_html (hoặc thư mục chứa trang web). Vào wp-content > Themes.

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Bước 3: Chọn thư mục theme đang kích hoạt. Bên trong, tìm file functions.php . Để minh họa, theme đang dùng của chúng tôi tên Personal Blogily, nên chọn thư mục này.

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Bước 4: Chuột phải chọn Edit. File mở ra và bạn chỉnh sửa ở đây. Chèn mã sau vào file:

function check_attempted_login( $user, $username, $password ) {

    if ( get_transient( 'attempted_login' ) ) {

        $datas = get_transient( 'attempted_login' );

        if ( $datas['tried'] >= 3 ) {

            $until = get_option( '_transient_timeout_' . 'attempted_login' );

            $time = time_to_go( $until );

            return new WP_Error( 'too_many_tried',  sprintf( __( '<strong>ERROR</strong>: You have reached authentication limit, you will be able to try again in %1$s.' ) , $time ) );

        }

    }

    return $user;

}

add_filter( 'authenticate', 'check_attempted_login', 30, 3 ); 

function login_failed( $username ) {

    if ( get_transient( 'attempted_login' ) ) {

        $datas = get_transient( 'attempted_login' );

        $datas['tried']++;

        if ( $datas['tried'] <= 3 )

            set_transient( 'attempted_login', $datas , 300 );

    } else {

        $datas = array(

            'tried'     => 1

        );

        set_transient( 'attempted_login', $datas , 300 );

    }

}

add_action( 'wp_login_failed', 'login_failed', 10, 1 ); 

function time_to_go($timestamp)

{

    // converting the mysql timestamp to php time

    $periods = array(

        "second",

        "minute",

        "hour",

        "day",

        "week",

        "month",

        "year"

    );

    $lengths = array(

        "60",

        "60",

        "24",

        "7",

        "4.35",

        "12"

    );

    $current_timestamp = time();

    $difference = abs($current_timestamp – $timestamp);

    for ($i = 0; $difference >= $lengths[$i] && $i < count($lengths) – 1; $i ++) {

        $difference /= $lengths[$i];

    }

    $difference = round($difference);

    if (isset($difference)) {

        if ($difference != 1)

            $periods[$i] .= "s";            $output = "$difference $periods[$i]";

Mã này sẽ giới hạn lần đăng nhập ở 3 lần.

Bước 5: Lưu file và thoát.

Sau khi nhúng mã này, người dùng có 3 lần thử nhập đúng thông tin đăng nhập. Nếu thất bại, họ bị chặn truy cập tài khoản trong một thời gian tạm. 

Bảo mật trang WordPress: Giới hạn lần đăng nhập hiệu quả

Lý do duy nhất chọn phương pháp này là nếu bạn muốn giảm thiểu plugin và tự triển khai tính năng. Ngoài ra, dùng plugin an toàn và dễ dàng hơn nhiều. 

Xong! Bạn đã giới hạn lần đăng nhập thành công và ngăn chặn tin tặc, bot truy cập trang web! 

Cũng đọc: Cách khắc phục vấn đề WordPress Login Not Secure

Bạn có nên Giới hạn lần đăng nhập trên WordPress?

Luôn có ưu và nhược điểm cho bất kỳ thứ gì triển khai trên WordPress. Vì vậy trước khi bật Giới hạn lần đăng nhập, chúng tôi dẫn dắt bạn qua ưu và nhược điểm. Điều này giúp xác định tính năng có phù hợp cho trang web.

Ưu điểm của Giới hạn lần đăng nhập

  • Ngăn chặn truy cập trái phép 

Bằng cách giới hạn lần đăng nhập, bạn ngăn chặn tin tặc và bot xấu brute force trang đăng nhập và xâm nhập.

Khóa tạm thời đủ để khiến bot nản chí và rời khỏi trang web.

  • Ngăn chặn tăng traffic đột ngột và sập máy chủ

Như đã nói, trong brute force, bot thử hàng nghìn tổ hợp. Mỗi lần thử, bot gửi yêu cầu đến máy chủ web.

Máy chủ web cung cấp tài nguyên chạy tác vụ và chức năng trên trang web bao gồm yêu cầu đăng nhập. Nếu bot ném hàng nghìn yêu cầu một phút, nó có thể quá tải máy chủ và gây sập.

Trang web sẽ tạm thời không truy cập được.

  • Ngăn chặn treo tài khoản bởi Hosting

Máy chủ web có tài nguyên hạn cho trang web. Nếu vượt quá, máy chủ quá tải.

Nếu bạn dùng hosting chia sẻ, điều này ảnh hưởng các trang web khác trên cùng máy chủ.

Khi bot làm hàng trăm lần thử đăng nhập, trang web dùng tài nguyên server quá mức. Điều này khiến nhà cung cấp hosting tạm ngừng… trang web để tránh ảnh hưởng trang khác trên server. Họ cũng làm vậy để bảo vệ lợi ích mình.

Nhược điểm của Giới hạn lần đăng nhập

  • Tài khoản bị khóa – Nếu bạn vô tình quên tên người dùng và mật khẩu, bạn có thể bị khóa tài khoản. Bạn cần làm quy trình xác minh khôi phục mật khẩu có thể tốn thời gian.

Đó là nhược điểm duy nhất chúng tôi nghĩ ra. Không có lý do nào khác không nên triển khai bảo vệ đăng nhập. Nếu tìm giải pháp thay thế WordPress Limit Login Attempts, bạn có thể thử Xác thực hai yếu tố (2FA). Cũng bảo vệ trang đăng nhập WordPress. MalCare đã ra bản beta 2FA hoặc bạn dùng Google Authenticator.

Được nói vậy, WordPress Limited Login Attempts dễ triển khai và bảo vệ trang web khỏi tin tặc. Chúng ta thấy ưu điểm vượt trội hơn nhược điểm khi giới hạn lần đăng nhập và bảo vệ trang web.

Bảo vệ trang đăng nhập khỏi tin tặc dễ dàng. Tôi dùng hướng dẫn từ MalCare. Xem ngay! Click to Tweet

Tổng kết

WordPress là CMS (Hệ thống quản lý nội dung) phổ biến nhất thế giới. Nhưng sự phổ biến này thu hút sự chú ý của tin tặc.

Trang WordPress liên tục bị tin tặc nhắm mục tiêu. Vì vậy quan trọng hơn là bạn phải thực hiện biện pháp bảo mật đầy đủ. Vì trang đăng nhập là trang bị tấn công nhiều nhất, giới hạn lần đăng nhập là điểm khởi đầu tốt.

Nếu muốn bảo vệ trang đăng nhập WordPress thêm, bạn có thể thấy tài nguyên sau hữu ích:

WordPress Login Security

Password Protect Login Page with HTTP Authentication

Protect Your WordPress Site Against Brute Force Attacks

Two-factor Authentication

Nếu bạn tìm giải pháp bảo mật toàn diện, dễ dàng nhưng mạnh mẽ, chúng tôi khuyến nghị dùng plugin MalCare. Nó quét trang web định kỳ, dựng tường lửa mạnh, giới hạn lần đăng nhập, và cảnh báo nếu có điều gì đáng ngờ. Nó bảo vệ trang web 24/7.

Bảo mật Trang WordPress Của Bạn Khỏi Tin Tặc Với MalCare!