Bạn muốn chặn spam trên WordPress? Chuyên gia Skillaweb hướng dẫn 6 cách hiệu quả để bảo vệ website WordPress khỏi các cuộc tấn công vào tính năng bình luận, form đăng ký thông tin và tạo tài khoản user mới.
| Key Takeaways:
6 cách chống spam hiệu quả trên WordPress gồm có:
|
Nếu đang dùng WordPress, chắc chắn bạn đã từng gặp rất nhiều spam trong phần bình luận, tài khoản người dùng và cả các biểu mẫu đăng ký thông tin (lead form).
Kể từ năm 2016, tôi đã thử nghiệm nhiều phương án khác nhau để chống các đợt tấn công mạng bằng các hình thức spam như trên, và nhận ra rằng có rất nhiều cách đơn giản, miễn phí và dễ thực hiện, phù hợp với cả những người mới bắt đầu quản trị website.
Trong bài viết này, tôi sẽ hướng dẫn bạn từng bước để ngăn chặn các loại spam WordPress, từ các hình thức cơ bản đến những phương pháp tự động hóa nâng cao, bao gồm cả những phương pháp mà chúng tôi đang sử dụng để bảo vệ các website của mình và khách hàng.
Vì sao website WordPress cần chặn spam?
Spam luôn là một trong những vấn đề lớn nhất mà mọi nhà quản trị web đều gặp kể từ thời điểm website được xuất bản công khai trên Internet.
Ở cấp độ đơn giản, spam có thể chỉ khiến cơ sở dữ liệu website phình to ra, khiến cho việc trích xuất và hiển thị thông tin trên web chậm hơn hoặc bị sai lệch, nhưng ở một số trường hợp nghiêm trọng, spam có thể khiến website hoàn toàn không thể truy cập được, chẳng hạn như khi bị tấn công từ chối dịch vụ (DDOS) hoặc hosting bị đầy.
Đặc biệt, các website WordPress thường là mục tiêu tấn công ưa thích của spam vì 3 lý do sau:
- WordPress là nền tảng CMS phổ biến nhất thế giới hiện nay, vì thế, tấn công spam vào WordPress thường có hiệu quả chi phí tốt hơn rất nhiều so với các nền tảng website khác.
- WordPress được sử dụng bởi rất nhiều người không rành về lập trình và bảo mật, do đó các website WordPress thường dễ bị tấn công hơn các nền tảng khác như Astro hoặc website tĩnh.
- Người dùng WordPress tại Việt Nam thường muốn các tính năng cao cấp nhưng không muốn trả phí dịch vụ, do đó dễ bị lừa truy cập vào những trang web độc hại chuyên cung cấp plugin và theme chứa mã độc bên trong.
Chính vì thế, dù bạn là người mới bắt đầu thì vẫn cần nắm rõ một số phương pháp ngăn chặn spam hiệu quả cho website WordPress.
6 cách phòng chống spam hiệu quả trên WordPress
Cách 1: Bật các thiết lập chặn spam có sẵn trong WordPress
Mỗi website WordPress đều đã có sẵn một vài tùy chọn chống spam mà bạn có thể sử dụng ngay lập tức, mặc dù không được chặn hoàn toàn nhưng nó giảm thiểu đáng kể số lượng spam bình luận mà bạn nhận được.
Vì thế, tôi khuyến khích bạn ưu tiên bật tất cả những tính năng dưới đây trước khi thực hiện tiếp bất kỳ thao tác chặn spam nào khác.
Siết chặt phần thiết lập bình luận trên website WordPress
WordPress đã xây dựng sẵn cơ chế lọc spam để ngăn chặn tình trạng đăng bình luận rác hàng loạt trên website bằng cách cho phép bạn kiểm soát ai có thể đăng bình luận, loại link nào được cho phép gắn vào bình luận, và có cần duyệt thủ công trước khi hiển thị bình luận hay không.
Với các tùy chọn lọc spam sẵn có trên WordPress này, những bình luận spam sẽ không bao giờ tự động xuất hiện công khai trên website của bạn dù cho chúng có vượt qua các bộ lọc spam khác.
Để bắt đầu, hãy thực hiện các bước sau:
- Bước 1: Truy cập vào Admin > Cài đặt > Bình luận.
- Bước 2: Ở mục Cài đặt bài viết mặc định, tắt 2 tùy chọn “Thử gửi thông báo tới bất kỳ blog/website nào khác được bài viết này liên kết tới” và “Cho phép thông báo liên kết từ các blog khác (pingback và trackbacks) trên các bài viết mới“.
- Bước 3: Ở mục Tùy chọn bình luận khác, bật tùy chọn “Người dùng phải đăng ký và đăng nhập để bình luận“.
- Bước 4: Ở mục Trước khi bình luận được đăng, bật tùy chọn “Bình luận cần được phê duyệt thủ công” và tắt tùy chọn “Người bình luận phải có bình luận được duyệt trước đó“. Điều này giúp bạn kiểm soát toàn bộ các bình luận trên website, phòng tránh cả trường hợp kẻ xấu đăng bình luận spam sau khi đã giả vờ đăng bình luận hợp lệ.
- Bước 5: Ở mục Kiểm duyệt bình luận, hãy chỉnh giới hạn số lượng link trong bình luận là 1, nhờ đó, bạn sẽ chặn tất cả các bình luận spam từ những kẻ muốn chèn link cờ bạc, lừa đảo hoặc những người muốn lấy backlink comment để SEO cho website của họ.
- Bước 6: Nhấp vào nút Lưu thay đổi ở cuối trang để hoàn tất.
Tắt Trackbacks và Pingbacks
Tính năng Trackbacks và Pingbacks trong WordPress sẽ thông báo cho bạn khi một trang web khác đã đặt link đến một trong những bài đăng trên blog của bạn.
Ban đầu, nó được thiết kế để giúp những người quản trị website kết nối với nhau, nhưng tính năng này đang bị lạm dụng để gửi các thông báo giả đến chủ sở hữu, vì thế, tắt hoàn toàn các tính năng này giúp bạn không còn nhận các thông báo spam thuộc loại này nữa.
Cách thực hiện như sau:
- Bước 1: Truy cập vào Admin > Cài đặt > Bình luận.
- Bước 2: Ở mục Cài đặt bài viết mặc định, tắt tùy chọn “Cho phép thông báo liên kết từ các blog khác (pingback và trackbacks) trên các bài viết mới“.
- Bước 3: Nhấp vào nút Lưu thay đổi ở cuối trang để hoàn tất.
Ngoài ra, bạn cũng nên cân nhắc tắt tùy chọn “Thử gửi thông báo tới bất kỳ blog/website nào khác được bài viết này liên kết tới” cũng nằm trong phần thiết lập Bình luận để không gửi các thông báo spam tới người khác.
Yêu cầu đăng nhập để bình luận
Bạn có thể chủ động kiểm soát những người được phép tham gia bình luận bằng cách yêu cầu họ đăng nhập vào tài khoản đã đăng ký trên website WordPress của bạn trước khi bình luận.
Các bước thực hiện như sau:
- Bước 1: Truy cập vào Admin > Cài đặt > Bình luận.
- Bước 2: Ở mục Tùy chọn bình luận khác, bật tùy chọn “Người dùng phải đăng ký và đăng nhập để bình luận“.
- Bước 3: Nhấp vào nút Lưu thay đổi ở cuối trang để hoàn tất.
Cách 2: Loại bỏ tính năng bình luận và điền form biểu mẫu trên WordPress nếu không cần thiết
Bạn nên cân nhắc loại bỏ các tính năng bình luận và điền form biểu mẫu trên WordPress nếu không cần sử dụng.
Thông thường, hầu hết các website WordPress được xây dựng dựa trên theme có sẵn (miễn phí hoặc trả phí) từ các kho giao diện phổ biến trên WordPress.org, ThemeForest, WPAstra… đều được gắn sẵn tính năng bình luận và form biểu mẫu.
Tuy nhiên, do hành vi khách hàng đặc thù, phần đông người dùng Việt Nam không sử dụng những tính năng này trong quá trình đọc nội dung trên website, vì thế, hầu như mọi website đều không nhận được bất kỳ bình luận hoặc lượt gửi form biểu mẫu nào.
Do đó, tôi luôn khuyến khích các chủ website WordPress nên chủ động xóa tính năng bình luận và và form biểu mẫu nếu không thực sự cần thiết phải sử dụng chúng nhằm loại bỏ hoàn toàn nguy cơ nhận các comment spam hoặc lượt gửi form rác.
Xóa tính năng bình luận nhanh chóng bằng plugin WPCode
Để xóa tính năng bình luận trong bài viết, bạn có thể cài đặt plugin WPCode và kích hoạt đoạn code có sẵn trong plugin là Completely Disable Comments. (mặc định được thêm sẵn vào danh sách các snippet code chưa hoạt động).
Nếu không tìm thấy code này, bạn có thể chủ động thêm vào như sau:
- Bước 1: Truy cập Admin > Code Snippets > Add New.
- Bước 2: Trong khung tìm kiếm snippet code, bạn hãy nhập tên của snippet code là Completely Disable Comments, sau đó click nút Use snippet.
- Bước 3: Tại trang xem chi tiết code, bạn sẽ thấy đoạn code này đang có trạng thái là Inactive (ở góc trên bên phải, cạnh nút Update). Chỉ cần chuyển trạng thái của đoạn code sang Active và nhấp nút Update, như vậy đoạn code đã bắt đầu hoạt động trên website.
Ưu điểm của cách làm này là tính năng bình luận tạm thời bị ẩn hoàn toàn khỏi trang WordPress của bạn, nghĩa là bạn sẽ không thấy hộp bình luận xuất hiện ở cuối mỗi bài viết cũng như tùy chọn xem bình luận trong trang Admin.
Nếu muốn sử dụng lại tính năng Bình luận, chỉ cần chuyển trạng thái của snippet code Completely Disable Comments sang Inactive hoặc xóa khỏi danh sách cần sử dụng, các dữ liệu bình luận của người dùng sẽ được hiển thị trở lại vào thời điểm trước khi bị ẩn.
Xóa form biểu mẫu trên WordPress được tạo ra bằng plugin và custom code
Thông thường, các form biểu mẫu được tích hợp sẵn vào các theme WordPress là nhờ vào các plugin tạo form biểu mẫu phổ biến như WPForms, Contact Form 7, Ninja Form… vì thế, bạn chỉ cần truy cập vào Admin > Plugin > Plugin đã cài đặt và xóa các plugin tạo form này trong danh sách plugin được cài đặt vào website WordPress của mình là đã chặn được kẻ xấu gửi gửi thông tin rác thông qua form.
Lưu ý rằng sau khi xóa plugin tạo form, bạn nên kiểm tra lại các vị trí đặt form trước đó xem có còn sót lại các code thừa của plugin hay không, nếu có, hãy xóa code thừa để trang web trở nên dễ nhìn hơn.
Ví dụ, các theme mẫu của WPAstra thường kèm theo plugin SureForms, vì thế, nếu xóa plugin SureForms, bạn cũng cần xóa shortcode dạng [sureforms id=”xxxx”] ở các vị trí đặt form trên website (thường nằm ở cuối trang web, khu vực Footer, trang chủ và trang Contact Us).

Ngoài ra, một số form biểu mẫu trên website được tạo ra bằng custom code (mã tùy chỉnh), việc xóa tính năng này sẽ phức tạp hơn vì bạn cần tìm đến nơi chứa code, có thể trong các plugin cho phép chèn custom code như WPCode, Code Snippets… hoặc thậm chí nằm trong các file giao diện (VD: header.php, footer.php…).
Bạn không biết cách xóa form biểu mẫu? Liên hệ ngay Skillaweb qua hotline/Zalo 0876.753.583 để được hỗ trợ kiểm tra nhé.
Cách 3: Chèn CAPTCHA miễn phí vào các form bình luận để xác minh người thật
Nếu vẫn muốn nhận bình luận trên WordPress và đã thực hiện xong cách 1, bạn có thể sử dụng phương thức xác minh CAPTCHA để lọc bot hoặc các IP có dấu hiệu spam.
CAPTCHA là bài kiểm tra miễn phí mà hầu hết người dùng bình thường đều có thể dễ dàng vượt qua, trong khi các phần mềm tự động lại không thể giải được.
Tuy nhiên, tôi không khuyến khích bạn sử dụng Google reCAPTCHA bởi vì Google đang giới hạn 10000 lượt kiểm tra mỗi tháng cho toàn bộ website nằm trong tài khoản của bạn, thay vào đó, tôi khuyến khích bạn sử dụng Cloudflare Turnstile CAPTCHA thông qua plugin miễn phí Simple Cloudflare Turnstile.
Cách thiết lập plugin này cũng rất đơn giản với 5 bước như sau:
- Bước 1: Tìm, cài đặt và kích hoạt plugin Simple Cloudflare Turnstile trong kho plugin của WordPress giống như mọi plugin khác.
- Bước 2: Truy cập vào Cài đặt > Cloudflare Turnstile.
- Bước 3: Trong trang Settings của plugin, bạn cần nhập Site Key và Site Secret được lấy từ tài khoản Cloudflare của bạn.
- Bước 4: Chọn các form mà bạn muốn kích hoạt Turnstile, sau đó nhấn nút Save Changes.
- Bước 5: Bạn được yêu cầu hoàn thành bài test nhanh bằng cách nhấn nút TEST API RESPONSE để xác nhận rằng plugin đã hoạt động chính xác.
Bạn có thể tham khảo video Youtube dài 1 phút 28 giây dưới đây để xem hướng dẫn cách thiết lập plugin Simple Cloudflare Turnstile nhé:
Cách 4: Chặn thư rác gửi qua form biểu mẫu WordPress
Nếu bạn đang sử dụng plugin WPForms cho website của mình, bạn có thể sử dụng Cloudflare Turnstile mà không cần cài đặt thêm plugin Simple Cloudflare Turnstile như trong cách 3, cùng với nhiều tùy chọn khác để chặn thư rác được gửi qua form.
Dưới đây tôi sẽ hướng dẫn chi tiết hơn cách thiết lập trong WPForms.
Bật xác minh CAPTCHA trong WPForms
Trong WPForms, Turnstile được tích hợp sẵn cùng với hCaptcha và reCAPTCHA, và như đã nói ở trên, tôi khuyến khích bạn sử dụng Cloudflare Turnstile thay vì Google reCAPTCHA.
Các bước thực hiện như sau:
- Bước 1: Truy cập Admin > WPForms > Settings > CAPTCHA.
- Bước 2: Chọn Turnstile, điền Site Key, Secret Key và lưu lại.
- Bước 3: Trường Turnstile sẽ xuất hiện trong danh sách các trường có thể thêm vào form, và bạn hãy thêm trường này vào tất cả các form trên website của mình.
Ngoài ra, nếu không muốn sử dụng hCaptcha, reCAPTCHA hay Turnstile, bạn cũng có thể tự tạo CAPTCHA bằng cách sử dụng các công cụ AI như CLAUDE để tạo code và chèn vào plugin WPCode.
Ví dụ, dưới đây là prompt mà tôi yêu cầu CLAUDE: “Tôi đang dùng WPForms và WPCode bản miễn phí. Tôi muốn tự tạo code xác minh CAPTCHA cho tất cả các form của WPForms mà không nâng cấp bản trả phí. Hãy tạo code cho tôi.”
Dưới đây là code mà AI đã phản hồi cho tôi:
| // 1. Hiển thị câu hỏi captcha toán học trước nút Submit của MỌI form WPForms add_action( ‘wpforms_display_submit_before’, ‘custom_wpforms_add_math_captcha’ ); function custom_wpforms_add_math_captcha( $form_data ) { $num1 = wp_rand( 1, 10 ); $num2 = wp_rand( 1, 10 ); $sum = $num1 + $num2; $token = wp_create_nonce( ‘wpforms_captcha_’ . $sum );echo ‘<div class=”wpforms-field” style=”margin-top:15px;”>’; echo ‘<label class=”wpforms-field-label”>Xác minh bạn không phải robot: ‘ . esc_html( $num1 ) . ‘ + ‘ . esc_html( $num2 ) . ‘ = ?</label>’; echo ‘<input type=”text” name=”wpforms_captcha_answer” class=”wpforms-field-medium” required style=”width:100px;”>’; echo ‘<input type=”hidden” name=”wpforms_captcha_sum” value=”‘ . esc_attr( $sum ) . ‘”>’; echo ‘<input type=”hidden” name=”wpforms_captcha_token” value=”‘ . esc_attr( $token ) . ‘”>’; echo ‘</div>’; }// 2. Kiểm tra đáp án khi form được submit add_action( ‘wpforms_process_before’, ‘custom_wpforms_validate_math_captcha’, 10, 3 ); function custom_wpforms_validate_math_captcha( $fields, $entry, $form_data ) { $sum = isset( $_POST[‘wpforms_captcha_sum’] ) ? intval( $_POST[‘wpforms_captcha_sum’] ) : 0; $token = isset( $_POST[‘wpforms_captcha_token’] ) ? sanitize_text_field( wp_unslash( $_POST[‘wpforms_captcha_token’] ) ) : ”; $answer = isset( $_POST[‘wpforms_captcha_answer’] ) ? intval( $_POST[‘wpforms_captcha_answer’] ) : null;if ( ! wp_verify_nonce( $token, ‘wpforms_captcha_’ . $sum ) || $answer !== $sum ) { wpforms()->process->errors[ $form_data[‘id’] ][‘header’] = ‘Xác minh CAPTCHA không đúng, vui lòng thử lại.’; } }// 3. (Tuỳ chọn) Honeypot ẩn — bẫy bot tự động điền form add_action( ‘wpforms_display_submit_before’, ‘custom_wpforms_honeypot_field’ ); function custom_wpforms_honeypot_field() { echo ‘<div style=”position:absolute;left:-9999px;top:-9999px;” aria-hidden=”true”>’; echo ‘<input type=”text” name=”wpforms_hp_check” value=”” tabindex=”-1″ autocomplete=”off”>’; echo ‘</div>’; } add_action( ‘wpforms_process_before’, ‘custom_wpforms_check_honeypot’, 5, 3 ); function custom_wpforms_check_honeypot( $fields, $entry, $form_data ) { if ( ! empty( $_POST[‘wpforms_hp_check’] ) ) { wpforms()->process->errors[ $form_data[‘id’] ][‘header’] = ‘Gửi form thất bại.’; } } |
Chỉ cần sao chép code nói trên vào WPCode, tôi đã có ngay tính năng thêm CAPTCHA tùy chỉnh chỉ có ở bản WPForms trả phí, thậm chí tự động dùng cho tất cả các form biểu mẫu thay vì thêm một cách thủ công như thông thường.
Bật chức năng Honeypot của WPForms
Honeypot là tính năng bẫy các bot độc hại hoặc hacker bằng cách tạo mục tiêu giả mà người dùng thật không thể nhìn thấy, chẳng hạn các trường thông tin giả bị ẩn trong form biểu mẫu, từ đó giúp hệ thống nhận diện những lượt truy cập bất hợp pháp và ngăn chặn chúng truy cập sâu hơn vào hệ thống.
Để kích hoạt Honeypot trong plugin WPForms, bạn có thể truy cập vào Admin > WPForms > Settings > Spam Protection and Security, sau đó bật tùy chọn “Enable modern anti-spam protection“.
Bật kiểm tra hành vi người dùng dựa trên thời gian
Thông thường, người dùng thật thường mất vài giây để đọc và điền nội dung được yêu cầu trong form trước khi gửi, trong khi các con bot có thể làm mọi thứ trong nháy mắt, vượt qua khỏi giới hạn của con người.
Vì thế, bạn có thể lọc bot dựa trên thời gian gửi form mà không làm ảnh hưởng đến trải nghiệm thực tế của người dùng thật.
Để làm điều này, bạn có thể truy cập vào Admin > WPForms > Settings > Spam Protection and Security, sau đó bật tùy chọn “Enable minimum time to submit” và tùy chỉnh thời gian tối thiểu để một form gửi đi được xem là hợp lệ (mặc định là 2 giây).
Tuy nhiên, một số bot vẫn có thể vượt qua bộ lọc theo thời gian này, vì thế, bạn có thể nhờ các công cụ AI như CLAUDE tạo code để tự động chặn theo IP/dải IP, địa chỉ email, từ khóa hoặc theo quốc gia.
Ví dụ, dưới đây là prompt mà tôi đã yêu cầu CLAUDE: “Tôi đang dùng WPForms và WPCode bản miễn phí. Tôi muốn tự động chặn tất cả người dùng từ quốc gia khác, chỉ cho phép tại Việt Nam, gửi form cho tôi, áp dụng cho tất cả các form của WPForms mà không nâng cấp bản trả phí. Hãy tạo code cho tôi.”
Dưới đây là code mà AI đã phản hồi cho tôi:
| add_action( ‘wpforms_process_before’, ‘wpf_block_non_vietnam’, 10, 3 ); function wpf_block_non_vietnam( $fields, $entry, $form_data ) {// Lấy IP người gửi form $ip = function_exists( ‘wpforms_get_ip_address’ ) ? wpforms_get_ip_address() : $_SERVER[‘REMOTE_ADDR’];if ( empty( $ip ) || $ip === ‘127.0.0.1’ ) { return; // Bỏ qua khi test trên localhost }// Cache kết quả tra IP để tránh gọi API liên tục $cache_key = ‘wpf_country_’ . md5( $ip ); $country_code = get_transient( $cache_key );if ( false === $country_code ) { $response = wp_remote_get( “http://ip-api.com/json/{$ip}?fields=status,countryCode”, [ ‘timeout’ => 5 ] );if ( is_wp_error( $response ) ) { return; // Nếu API lỗi thì không chặn, tránh chặn nhầm khách thật }$body = json_decode( wp_remote_retrieve_body( $response ), true );if ( empty( $body[‘status’] ) || $body[‘status’] !== ‘success’ ) { return; }$country_code = $body[‘countryCode’]; set_transient( $cache_key, $country_code, DAY_IN_SECONDS ); } // Nếu không phải Việt Nam, chặn gửi form |
Chỉ cần sao chép code nói trên vào WPCode, các form của tôi đã có thể tự động lọc theo quốc gia mà không cần nâng cấp gói trả phí của WPForms, mặc dù trong một số trường hợp, IP quốc gia vẫn có thể bị làm giả bởi dịch vụ VPN/Proxy.
Cách 5: Chặn bot tạo user mới trên WordPress
Với những website WordPress có tính năng e-commerce (hay website TMĐT), hành vi spam tài khoản người dùng sẽ gây ra rất nhiều vấn đề về chi phí và công tác quản lý.
Nó không chỉ khiến cơ sở dữ liệu trở nên nặng nề, chậm truy xuất dữ liệu khi có yêu cầu, mà còn khiến các hồ sơ báo cáo kinh doanh của bạn bị sai lệch.
Vì thế, dưới đây là 3 giải pháp mà tôi đã ứng dụng để hạn chế các bot độc hại và phần mềm tự động tạo tài khoản người dùng mới trên website WordPress:
- Giải pháp 1: Yêu cầu xác minh tài khoản người dùng qua Email
- Giải pháp 2: Thêm xác minh CAPTCHA và bẫy Honeypot vào form đăng ký tài khoản mới
- Giải pháp 3: Lọc user theo địa chỉ IP
Giải pháp 1: Yêu cầu xác minh tài khoản người dùng qua Email
Nếu muốn ngăn chặn các bot spam và chỉ cho phép người dùng thật đăng ký tài khoản, bạn có thể yêu cầu xác minh tài khoản bằng cách nhấp vào link được gửi qua email, hoặc đợi đội ngũ quản lý tài khoản xét duyệt thủ công.
Việc thêm bước xác minh này tùy thuộc vào loại plugin đăng ký tài khoản mà bạn đang sử dụng.
Nếu bạn cho phép người dùng đăng ký tài khoản bằng Woocommerce thông qua phần Admin > WooCommerce > Settings > Accounts & Privacy, bạn sẽ cần dùng đến plugin của bên thứ ba để thêm bước xác minh tài khoản bằng email, chẳng hạn như plugin miễn phí Customer Email Verification for WooCommerce.
Dưới đây là 5 bước cơ bản để bạn bắt đầu sử dụng plugin này:
- Bước 1: Cài đặt và kích hoạt plugin Customer Email Verification for WooCommerce của WPFactory. Lưu ý, trong kho plugin của WordPress có 2 plugin trùng tên do Zorem và WPFactory tạo ra, vì thế, hãy chọn đúng tên tác giả là WPFactory nhé. Ngoài ra, đảm bảo rằng plugin Woocommerce đã được cài đặt và kích hoạt trên website của bạn.
- Bước 2: Trong trang admin, truy cập WPFactory > Email Verification > General.
- Bước 3: Ở mục Current registered users, bạn có thể lựa chọn bật hoặc tắt tùy chọn “Verify account for current users“. Theo mặc định, các tài khoản user chưa được kích hoạt sẽ không thể login được vào website, tuy nhiên, nếu website của bạn đã có sẵn danh sách các user từng đăng ký trước đây, họ vẫn có thể đăng nhập vào website nếu tùy chọn này chưa được kích hoạt. Lưu ý rằng, bật tùy chọn này có thể tạo ra một số phiền hà với những khách hàng đã từng mua hàng trên website của bạn, vì thế, hãy cân nhắc trước khi bật nó lên.
- Bước 4: Ở mục Redirect on failure, hãy bật tùy chọn “Redirects to a custom URL if an unverified user tries to login“, sau đó điền link trang web bạn đã thiết kế dành riêng cho những đối tượng này ở mục Custom redirect URL ngay bên dưới.
- Bước 5: Nhấn Lưu thay đổi/Save Changes để các thiết lập bắt đầu được áp dụng.
Ngoài ra, còn có rất nhiều thiết lập nâng cao giúp bạn cá nhân hóa phần xác minh qua email, chẳng hạn như thiết kế lại giao diện của email hoặc lựa chọn các trang sẽ bị chặn xem nội dung nếu người dùng chưa login… bạn có thể xem video Youtube dưới đây để nắm rõ cách thiết lập plugin Customer Email Verification for WooCommerce chi tiết hơn nhé:
Giải pháp 2: Thêm xác minh CAPTCHA và bẫy Honeypot vào form đăng ký tài khoản mới
Tương tự với form biểu mẫu, CAPTCHA và bẫy Honeypot cũng có thể áp dụng cho quá trình đăng ký tài khoản user mới nhằm hạn chế tối đa các bot và phần mềm tự động.
Nếu bạn đã từng cài đặt plugin Simple Cloudflare Turnstile như hướng dẫn bên trên, bạn có thể kích hoạt nó một cách dễ dàng chỉ với 1 click.
Trong trường hợp bạn sử dụng form đăng ký tài khoản mặc định của WordPress, bạn có thể sử dụng plugin miễn phí WP Armour để thêm bẫy Honeypot vào biểu mẫu, từ đó có thể check thông tin về các bot mà nó đã chặn trong phần WP Armour > Statistics.
Giải pháp 3: Lọc user theo địa chỉ IP
CAPTCHA và Honeypot có thể lọc phần lớn các bot, nhưng chúng không nhận diện được các tài khoản sử dụng email dùng 1 lần hoặc từ các địa chỉ IP spam.
Trong trường hợp này, bạn cần đến tính năng tự động phát hiện các địa chỉ IP độc hại thông qua việc sử dụng CLAUDE AI tạo code gắn vào WPCode để tự động đối chiếu địa chỉ IP của user với danh sách có sẵn của FindIP API.
Ví dụ, prompt tôi đã gửi cho CLAUDE như sau: “Tôi đang dùng WordPress và WPcode bản miễn phí. Tôi muốn tự tạo code chặn IP độc hại vào trang đăng ký tài khoản thông qua API của FindIP. Hãy tạo code cho tôi”.
Dưới đây là đoạn code mà CLAUDE đã gửi lại cho tôi:
| <?php /** * Chặn đăng ký tài khoản từ IP VPN / Proxy / Tor / Malicious * Dùng FindIP.net API (free, unlimited) */// ==== CẤU HÌNH ==== define( ‘FINDIP_API_KEY’, ‘YOUR_FINDIP_API_KEY’ ); // <– thay bằng API key của bạn define( ‘FINDIP_BLOCK_VPN’, true ); // chặn VPN define( ‘FINDIP_BLOCK_PROXY’, true ); // chặn Proxy define( ‘FINDIP_BLOCK_TOR’, true ); // chặn Tor define( ‘FINDIP_BLOCK_HOSTING’, false ); // chặn datacenter/hosting IP (bật nếu muốn, có thể chặn nhầm người dùng VPS/công ty) define( ‘FINDIP_BLOCK_RISK_LEVEL’, ‘high’ ); // chặn nếu risk level >= mức này (‘low’,’medium’,’high’) define( ‘FINDIP_CACHE_HOURS’, 12 ); // cache kết quả tra cứu IP (giờ), tránh gọi API lặp lại/** * Lấy IP thật của client (ưu tiên header Cloudflare / proxy nếu có) */ function findip_get_client_ip() { $keys = array( ‘HTTP_CF_CONNECTING_IP’, // Cloudflare ‘HTTP_X_FORWARDED_FOR’, ‘HTTP_X_REAL_IP’, ‘REMOTE_ADDR’, );foreach ( $keys as $key ) { if ( ! empty( $_SERVER[ $key ] ) ) { $ip_list = explode( ‘,’, $_SERVER[ $key ] ); $ip = trim( $ip_list[0] ); if ( filter_var( $ip, FILTER_VALIDATE_IP ) ) { return $ip; } } } return ”; }/** * Gọi FindIP API, có cache bằng transient để đỡ tốn request */ function findip_lookup_ip( $ip ) { if ( empty( $ip ) ) { return false; }$cache_key = ‘findip_’ . md5( $ip ); $cached = get_transient( $cache_key ); if ( false !== $cached ) { return $cached; }$url = sprintf( ‘https://api.findip.net/%s/?token=%s’, rawurlencode( $ip ), rawurlencode( FINDIP_API_KEY ) ); $response = wp_remote_get( $url, array( ‘timeout’ => 5 ) ); if ( is_wp_error( $response ) ) { $body = wp_remote_retrieve_body( $response ); if ( empty( $data ) || ! isset( $data[‘intelligence’] ) ) { // Cache kết quả return $data; /** $flags = $data[‘intelligence’][‘flags’] ?? array(); if ( FINDIP_BLOCK_VPN && ! empty( $flags[‘is_vpn’] ) ) { if ( ! empty( $risk[‘level’] ) ) { return false; /** if ( empty( $ip ) ) { $data = findip_lookup_ip( $ip ); if ( $data && findip_should_block( $data ) ) { return $errors; |
Để lấy API key miễn phí từ FindIP, bạn chỉ cần thực hiện lần lượt các bước sau:
- Bước 1: Truy cập vào FindIP (Link: https://www.findip.net/) và tạo tài khoản free.
- Bước 2: Xác minh tài khoản qua email.
- Bước 3: Hoàn tất hồ sơ cá nhân.
- Bước 4: Trong tab Dashboard, bạn sẽ nhận được API key ở bên dưới mục Your API Key. Nhấn nút Copy để lưu API key vào clipboard.
Sau đó, bạn chỉ cần thay thế API key vừa copy vào đoạn YOUR_FINDIP_API_KEY trong đoạn code của Claude bên trên, dán code hoàn chỉnh vào WPCode và kích hoạt là được.
Lưu ý rằng, trong ví dụ của tôi, link trang đăng ký được sử dụng bao gồm wp-login.php?action=register và cả trang register mặc định của WP, còn bạn nên cung cấp chính xác link trang đăng ký tài khoản khi gửi prompt cho CLAUDE để công cụ AI này tạo code cho chuẩn, tránh trường hợp bộ lọc không hoạt động do sai URL của trang đăng ký tài khoản.
Cách 6: Phòng chống spam ở cấp độ hosting
Ở cấp độ hosting, bạn có thể phòng ngừa các bot spam và phần mềm tự động bằng cách bật tường lửa ứng dụng web (WAF) để lọc toàn bộ các lượt truy cập vào website và chặn các yêu cầu độc hại trước khi chúng thực sự tiếp cận được website của bạn.
Để tiết kiệm chi phí, tôi khuyến khích bạn sử dụng Cloudflare vốn cung cấp tính năng bảo vệ tường lửa cơ bản ở gói miễn phí, và các bước thực hiện đơn giản như sau:
- Bước 1: Tạo tài khoản miễn phí trên Cloudflare (link: https://dash.cloudflare.com/sign-up).
- Bước 2: Đăng nhập vào tài khoản Cloudflare, sau đó tìm với từ khóa Domains overview trong khung Quick search ở góc trên bên trái màn hình của bạn (ngay dưới tên tài khoản).
- Bước 3: Chọn Add domain > Connect a domain.
- Bước 4: Nhập tên miền của bạn vào mục Domain name (các mục còn lại cứ để mặc định nếu không cần thay đổi), sau đó nhấn nút Continue.
- Bước 5: Nhấn nút Select plan ở mục Free (hoặc bạn có thể chọn các gói dịch vụ khác nếu muốn nhiều tính năng hơn).
- Bước 6: Ở trang Review your DNS records, bạn nhấn nút Continue to activation.
- Bước 7: Mở tab mới trên trình duyệt web và truy cập vào trang quản lý dịch vụ DNS của tên miền, bạn chỉ cần thay thế các nameserver ban đầu bằng 2 nameserver của Cloudflare và xóa các nameserver thừa theo hướng dẫn của Cloudflare, sau đó lưu lại.
- Bước 8: Quay lại trang Cloudflare mà bạn đã tạm dừng ở bước 6, kéo xuống cuối trang và nhấn vào nút I updated my nameservers. Bạn chỉ cần đợi khoảng 5 phút để website kết nối thành công với Cloudflare là hoàn tất.
Tóm lại
Như vậy tôi đã hướng dẫn bạn những phương pháp tốt nhất để chống spam cho website WordPress, bao gồm một số phương pháp đơn giản, có thể thực hiện ngay nhờ tính năng tích hợp sẵn trong WordPress, đến những phương pháp nâng cao, cần tạo thêm code tùy chỉnh hoặc thiết lập chuyên sâu cho hosting và tên miền.
Tuy nhiên, dù đã thực hiện tất cả những phương án trên nhưng bạn vẫn có thể gặp rủi ro bị spam nếu kẻ xấu tận dụng các công nghệ tiên tiến để tìm lỗ hổng bảo mật và xâm nhập.
Nếu những phương pháp nói trên chưa hiệu quả đối với bạn, hãy liên hệ Skillaweb để được chuyên gia thiết kế website tại đây tư vấn và hướng dẫn thêm nhé.
Ngoài ra, bạn có thể tham khảo thêm một số câu hỏi thường gặp dưới đây để lấy thêm thông tin hữu ích nhé.
Câu hỏi thường gặp
Cách nào để chống spam đơn giản, miễn phí và hiệu quả cho WordPress?
Bạn nên tận dụng các công cụ AI như Claude kết hợp với plugin chèn custom code như WPCode để chống spam cho tính năng form biểu mẫu, đăng ký tài khoản hoặc bình luận trên website.
Nên dùng CAPTCHA, HCAPTCHA hay Turnstile?
Bạn nên dùng Turnstile của Cloudflare vì nó hoàn toàn miễn phí với mọi website có quy mô nhỏ (lưu lượng truy cập khoảng dưới 10 ngàn lượt/tháng), trong khi CAPTCHA và HCAPTCHA chỉ hỗ trợ miễn phí cho một lượng traffic rất ít trước khi bắt đầu tính phí.
Cài đặt các tính năng chống spam nói trên có làm website hoạt động chậm hơn không?
Ngoài phương pháp sử dụng các tính năng chống spam bình luận có sẵn trong WordPress, các phương pháp khác đều làm giảm hiệu suất website ở một mức độ nào đó, tùy thuộc vào số lượng giải pháp bạn thêm vào web.
Nguyên nhân là vì các giải pháp này đều có thêm các code javascript mới cần được xử lý, và sử dụng càng nhiều giải pháp thì web sẽ càng chậm hơn.
Skillaweb – Dịch vụ thiết kế website uy tín tại Nha Trang
Skillaweb chuyên cung cấp dịch vụ thiết kế website uy tín tại Nha Trang, đáp ứng nhu cầu của mọi khách hàng từ cá nhân đến doanh nghiệp địa phương.
Dịch vụ thiết kế website tại Nha Trang của Skillaweb được khách hàng ưa chuộng vì 5 ưu điểm sau:
- Đơn giản, dễ sử dụng: Website được xây dựng trên WordPress, nền tảng CMS phổ biến nhất thế giới hiện nay, nổi tiếng với giao diện quản lý dễ nhìn, thân thiện với người mới bắt đầu, và có hỗ trợ Tiếng Việt.
- Theme và plugin chính hãng, update liên tục: 100% plugin đều chính hãng, vì vậy được hỗ trợ update trọn đời mỗi khi nhà sản xuất có cập nhật tính năng mới.
- Giá rẻ theo nhu cầu sử dụng: Chỉ từ 500k/trang, bạn sẽ kiểm soát toàn bộ chi phí thiết kế web theo khả năng tài chính của mình bằng cách quyết định số lượng trang web cần thiết kế.
- Hỗ trợ liên tục: Skillaweb hỗ trợ liên tục qua Zalo và hotline, sẵn sàng tiếp nhận thông tin và xử lý các vấn đề phát sinh ngay khi nhận yêu cầu từ bạn.
- An toàn, bảo mật cao: Website luôn được backup dữ liệu hàng ngày, có tích hợp hệ thống tường lửa Anti-DDOS và hệ thống quét virus liên tục.
Bạn cần thuê dịch vụ thiết kế website? Liên hệ chúng tôi ngay theo thông tin sau:
- DỊCH VỤ THIẾT KẾ WEBSITE SKILLAWEB
- Hotline: 0876.753.583
- Địa chỉ: Tầng 2, Số 26 Trần Quý Cáp, Phường Nha Trang, Tỉnh Khánh Hòa
- Email: skillaweb@gmail.com
- Thời gian làm việc: Từ Thứ Hai đến Thứ Bảy, từ 08:00 đến 21:00 (trừ Lễ, Tết)

Project Manager tại Skillamy, phụ trách quản lý và triển khai các hoạt động thiết kế website Online Ads, SEO và viết content cho các dự án Marketing. Làm việc chủ yếu nền tảng WordPress từ năm 2016 đến nay.

