Bảo mật trang web WordPress của bạn là một yếu tố quan trọng để đảm bảo dữ liệu và thông tin cá nhân của người dùng không bị xâm nhập. Một trong những phương thức tấn công phổ biến hiện nay chính là brute force attack (tấn công thử mật khẩu), trong đó kẻ tấn công sử dụng các công cụ tự động để thử hàng nghìn mật khẩu khác nhau nhằm chiếm quyền truy cập vào trang quản trị của WordPress.
Trong bài viết này, chúng ta sẽ cùng khám phá cách chống lại các cuộc tấn công brute force vào trang WordPress của bạn, đồng thời gửi cảnh báo qua email khi có các lần đăng nhập không hợp lệ. Đặc biệt, mã code bảo mật dưới đây cũng sẽ giúp bạn bảo vệ trang admin WordPress của mình mà không cần phải cài đặt plugin quá nặng nề.

Giới Hạn Số Lần Đăng Nhập Sai và Khóa IP Tạm Thời
Để ngăn chặn tấn công brute force, một trong những biện pháp hiệu quả là giới hạn số lần đăng nhập sai từ một địa chỉ IP. Sau một số lần đăng nhập thất bại, bạn có thể khóa địa chỉ IP đó trong một khoảng thời gian để ngừng các thử nghiệm đăng nhập không hợp lệ. Điều này sẽ giúp ngăn chặn các công cụ tấn công tự động.
Gửi Cảnh Báo Khi Có Đăng Nhập Thành Công hoặc Thất Bại
Để dễ dàng theo dõi, bạn cũng có thể thiết lập hệ thống gửi email cảnh báo mỗi khi có ai đó đăng nhập vào trang quản trị hoặc khi có các lần đăng nhập thất bại. Cảnh báo qua email sẽ giúp bạn nhận diện sớm các mối đe dọa tiềm ẩn và xử lý kịp thời.
Cách Thực Hiện Chức Năng Bảo Mật Với Mã PHP
Dưới đây là mã PHP mà bạn có thể thêm vào file functions.php của WordPress để thực hiện chức năng bảo mật và gửi cảnh báo khi có các lần đăng nhập thành công hoặc thất bại. Mã code này cũng sẽ giới hạn số lần đăng nhập sai và khóa IP sau một số lần đăng nhập không thành công.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | // Hàm gửi email cảnh báo khi đăng nhập thành công vào trang admin function send_login_alert_email($user_login, $user) { // Kiểm tra nếu người dùng có quyền admin if (in_array('administrator', (array) $user->roles)) { $admin_email = get_option('admin_email'); // Lấy email quản trị viên từ cài đặt WordPress $subject = 'Cảnh Báo: Đăng Nhập Thành Công Vào Trang Quản Trị WordPress'; $message = sprintf( 'Thông báo: Tài khoản %s đã đăng nhập thành công vào trang quản trị WordPress của bạn vào lúc %s. Thông tin người dùng: Tên người dùng: %s Email người dùng: %s', $user_login, date('Y-m-d H:i:s'), $user_login, $user->user_email ); // Gửi email đến quản trị viên wp_mail($admin_email, $subject, $message); } } // Hàm gửi email cảnh báo khi đăng nhập thất bại function send_failed_login_alert_email($username) { $admin_email = get_option('admin_email'); // Lấy email quản trị viên từ cài đặt $subject = 'Cảnh Báo: Đăng Nhập Thất Bại Vào Trang Quản Trị WordPress'; $message = sprintf( 'Thông báo: Đã có một lần đăng nhập thất bại vào trang quản trị WordPress của bạn với tên người dùng: %s. Thời gian đăng nhập thất bại: %s', $username, date('Y-m-d H:i:s') ); // Gửi email đến quản trị viên wp_mail($admin_email, $subject, $message); } // Hook vào sự kiện đăng nhập thành công add_action('wp_login', 'send_login_alert_email', 10, 2); // Hook vào sự kiện đăng nhập thất bại add_action('wp_login_failed', 'send_failed_login_alert_email'); // Giới hạn số lần đăng nhập sai từ một địa chỉ IP function limit_login_attempts() { $max_attempts = 5; // Số lần đăng nhập sai tối đa $lockout_time = 15 * MINUTE_IN_SECONDS; // Thời gian khóa (15 phút) $attempts = get_transient('login_attempts_' . $_SERVER['REMOTE_ADDR']); if ($attempts >= $max_attempts) { wp_die('Bạn đã thử đăng nhập quá nhiều lần. Vui lòng thử lại sau 15 phút.'); } } add_action('wp_login_failed', 'limit_login_attempts'); add_action('wp_authenticate', 'limit_login_attempts', 10, 0); // Tăng số lần đăng nhập sai cho mỗi lần đăng nhập thất bại function increase_login_attempts() { $attempts = get_transient('login_attempts_' . $_SERVER['REMOTE_ADDR']); $attempts = $attempts ? $attempts + 1 : 1; set_transient('login_attempts_' . $_SERVER['REMOTE_ADDR'], $attempts, 15 * MINUTE_IN_SECONDS); // Lưu số lần đăng nhập thất bại } add_action('wp_login_failed', 'increase_login_attempts'); |
Giải Thích Mã PHP và Các Chức Năng
- Cảnh Báo Đăng Nhập Thành Công: Hàm send_login_alert_email() gửi thông báo đến quản trị viên khi một người dùng có quyền quản trị đăng nhập thành công vào trang WordPress. Thông báo bao gồm tên người dùng, email và thời gian đăng nhập.
- Cảnh Báo Đăng Nhập Thất Bại: Hàm send_failed_login_alert_email() sẽ gửi cảnh báo qua email khi có ai đó thử đăng nhập vào trang admin với thông tin sai.
- Giới Hạn Số Lần Đăng Nhập Sai: Hàm limit_login_attempts() giới hạn số lần đăng nhập sai từ một địa chỉ IP. Nếu người dùng nhập sai quá 5 lần liên tiếp, họ sẽ bị khóa trong 15 phút.
- Tăng Số Lần Đăng Nhập Sai: Hàm increase_login_attempts() ghi lại số lần đăng nhập thất bại từ một địa chỉ IP và lưu trữ số liệu này trong transient để giới hạn tấn công.
Lợi Ích Khi Cài Đặt Các Chức Năng Bảo Mật
Giảm Rủi Ro Tấn Công Brute Force: Với cơ chế khóa IP và giới hạn số lần đăng nhập sai, bạn có thể ngăn chặn các cuộc tấn công tự động từ các công cụ brute force.
Cảnh Báo Kịp Thời: Cảnh báo qua email giúp bạn theo dõi các hoạt động đăng nhập không bình thường, từ đó có thể phản ứng kịp thời với những mối đe dọa tiềm ẩn.
Đơn Giản và Hiệu Quả: Đoạn mã bảo mật này dễ dàng tích hợp trực tiếp vào trang web của bạn mà không cần cài đặt các plugin phức tạp, giúp giảm tải cho trang web.
Kết Luận
Bảo mật trang WordPress của bạn khỏi các cuộc tấn công brute force là rất quan trọng để bảo vệ dữ liệu và thông tin người dùng. Bằng cách sử dụng mã PHP bảo mật này, bạn sẽ có thể giới hạn số lần đăng nhập sai, gửi cảnh báo qua email và khóa IP tạm thời khi có các lần đăng nhập không hợp lệ. Đây là một giải pháp đơn giản nhưng hiệu quả cho việc bảo vệ trang web WordPress của bạn mà không cần sử dụng các plugin nặng nề.
Ngoài ra, nếu bạn đang tìm kiếm một theme WordPress giá rẻ nhưng vẫn mạnh mẽ và dễ sử dụng, đừng quên tham khảo các theme tại MuaThemeWPGiaRe. Đây là giải pháp tuyệt vời cho các chủ sở hữu website muốn có một trang web đẹp, tối ưu và bảo mật cao.
- Khóa học đào tạo SEO: Học SEO từ căn bản đến nâng cao
- Bạn có biết gì về Meta Keyword trong SEO
- Cách Cải Thiện CTR Tự Nhiên Cho Bài Viết Cũ
- Booking & Rental Plugin for WooCommerce – Plugin đặt thuê linh hoạt cho mọi mô hình kinh doanh
- Sharecode Cách Thêm Mô Tả Cho Danh Mục Sản Phẩm Trong WordPress Chuẩn SEO

