Cách Chặn Triệt Để Spam Bình Luận Trong WordPress Bằng Function PHP

24 Tháng 4, 2025

Spam bình luận là một trong những hình thức tấn công phổ biến khiến website WordPress trở nên kém chuyên nghiệp, thậm chí ảnh hưởng đến bảo mật. Dù đã tắt tính năng bình luận, nhiều quản trị viên vẫn gặp tình trạng bị spam qua các phương thức ẩn như REST API, XML-RPC hoặc script gửi trực tiếp đến wp-comments-post.php.

Vậy làm sao để chặn triệt để các hình thức spam bình luận này? Hãy áp dụng đoạn mã PHP dưới đây trong functions.php của theme (nên là child theme).


1. Tắt Toàn Bộ Gửi Bình Luận Qua File wp-comments-post.php

add_action('init', function() {
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_SERVER['REQUEST_URI'])) {
        if (strpos($_SERVER['REQUEST_URI'], 'wp-comments-post.php') !== false) {
            wp_die('Commenting is disabled on this site.', 'Comment Blocked', ['response' => 403]);
        }
    }
});

🔍 Tác dụng: Ngăn hoàn toàn mọi POST request gửi bình luận, kể cả không dùng form giao diện.

2. Vô Hiệu Hóa API Bình Luận Qua REST

add_filter('rest_endpoints', function($endpoints) {
    if (isset($endpoints['/wp/v2/comments'])) {
        unset($endpoints['/wp/v2/comments']);
    }
    return $endpoints;
});

🔍 Tác dụng: Chặn các plugin hoặc bot gửi bình luận qua đường dẫn /wp-json/wp/v2/comments.

3. Ngăn Bình Luận Qua XML-RPC (API kiểu cũ)

add_filter('xmlrpc_methods', function($methods) {
    unset($methods['wp.newComment']);
    unset($methods['wp.editComment']);
    unset($methods['wp.deleteComment']);
    return $methods;
});

🔍 Tác dụng: Vô hiệu hóa các phương thức bình luận qua XML-RPC — một vector tấn công phổ biến với các bot cổ điển.

4. Tắt Bình Luận Qua admin-ajax.php (nếu bị plugin gửi lén)

add_action('admin_init', function() {
    if (defined('DOING_AJAX') && DOING_AJAX && isset($_POST['action']) && strpos($_POST['action'], 'comment') !== false) {
        wp_die('Comments via AJAX are disabled.', 'Comment Blocked', ['response' => 403]);
    }
});

🔍 Tác dụng: Ngăn bình luận được gửi qua Ajax (dạng admin-ajax.php?action=xyz_comment_submit).

🎯 Lợi Ích Khi Chặn Triệt Để Spam Comment

  • ⚡ Tăng tốc độ tải trang do giảm xử lý comment không cần thiết.
  • 🔐 Tăng cường bảo mật, tránh bot gửi dữ liệu lừa đảo, mã độc.
  • 💬 Đảm bảo tính chuyên nghiệp khi không sử dụng bình luận.
  • 🧼 Dọn sạch dữ liệu rác trong database (không còn comment spam lưu trong hệ thống).

📌 Hướng Dẫn Sử Dụng

  1. Truy cập Appearance → Theme File Editor hoặc FTP/SFTP.
  2. Mở file functions.php của child theme (không nên chỉnh theme chính).
  3. Dán đoạn mã vào cuối file.
  4. Lưu lại và kiểm tra kết quả bằng cách thử gửi bình luận.

📦 Bonus: Có Nên Viết Plugin Riêng?

Nếu bạn không muốn chỉnh sửa code, có thể đóng gói đoạn này thành plugin riêng để bật/tắt bằng 1 click trong admin. Nếu bạn cần mình tạo sẵn plugin này, hãy để lại bình luận nhé!

Blog ..

Hướng dẫn dịch vụ ..

Sản phẩm nổi bật

dịch vụ chất lượng khách hàng tin tưởng

NVMe VPS

Tốc độ cao và bảo mật

Xem thêm

SSD VPS

Hiệu năng và tối ưu chi phí

Xem thêm

Proxy

Ẩn danh và mượt mà

Xem thêm

NVMe Hosting

Ổn định và tiện dụng

Xem thêm