Tránh spam cho blog WordPress

Tránh spam cho blog WordPressDạo này blog nhận được rất nhiều comment rác. Trong vòng 2 ngày mà nhận được tới hơn 2000 comment rác. Bạn hãy tưởng tượng nó liên tục đến mức : tôi vừa mới xóa tất cả xong, quay lại trang comment là thấy mục Spam có thêm ít nhất là 1 comment rác :dapdau: .Thậm chí WordPress bị treo ở một vài thời điểm khi tôi cố gắng xóa lượng comment quá nhiều.

Hôm qua, tôi quyết định dùng thử plugin WP re-Captcha với hy vọng chấm dứt tệ nạn này, nhưng nó làm việc không hiệu quả. Chính xác thì lượng “rác” có giảm nhưng vẫn còn khá nhiều. Hơn nữa, việc nhập mã captcha này gây phiền toái cho mọi người bởi vì đôi khi bạn không nhìn rõ được chữ hiện ra trong hình là cái giống gì cả. Vì vậy, tôi quyết định dẹp luôn plugin đó và tự làm bằng tay…

Việc phát tán comment rác chủ yếu là do máy móc làm và chúng có khả năng đọc được mã Captcha. Nhưng tôi không tin chúng thông minh tới mức có thể đọc và hiểu tiếng Việt, nhất là ở dạng hình ảnh. Vì vậy mà ý tưởng bảo vệ blog mà tôi nghĩ ra đó là : tạo một “đoạn văn” với câu hỏi được hiển thị ở dạng hình ảnh -> nếu bạn nhập câu trả lời sai thì comment đó sẽ không được lưu vào database của blog.

Nếu nó cập nhật được câu trả lời, tôi sẽ…chiến đấu tới hơi thở cuối cùng bằng cách…đổi câu hỏi khác :)) .Hiện tại tôi chấp nhận làm thủ công, miễn sao giúp được blog là OK.

Cách làm này tôi buộc phải chỉnh sửa core của WordPress, tức là tôi sẽ thêm vào tập tin xử lý comment của WordPress (wp-comments-post.php) một đoạn mã nhỏ giúp nó ngưng xử lý khi bạn gõ sai câu trả lời. Việc sửa đổi mã nguồn của WordPress là không được khuyến khích bởi vì nó có thể tạo ra các lỗ hổng bảo mật cho blog. Nhưng trong tình huống này, tôi tự xét thấy nó an toàn nên quyết định làm, trước khi tôi tìm được một giải pháp khác (tạo ra file PHP để tự xử lý).

Thực hiện :

1. Tạo ra một tấm hình và gõ vào câu hỏi trong đó. Ví dụ như tấm hình mà tôi đang sử dụng :

Tránh spam cho blog WordPress

2. Chèn ảnh Captcha và textbox vào phần comment trên blog :

Bạn mở thư mục giao diện của blog ra và mở tập tin “comments.php” và chèn đoạn mã sau vào phần thích hợp :

Tránh spam cho blog WordPress

Tôi đã chèn thêm cái hình và một textbox ngay bên trên nút “Submit”. Textbox chứa câu trả lời được tôi đặt tên là “macaptcha”.

3. Sửa tập tin “wp-comments-post.php”

Tập tin này nằm ở thư mục gốc của blog. Bạn mở nó lên và chèn đoạn mã ngay sau dòng “nocache_headers();”, như hình sau :

Tránh spam cho blog WordPress

Lưu ý là sử dụng tiếng Việt không dấu nhé, nếu không sẽ bị lỗi. Lưu lại và upload lên server. Và bạn sẽ thấy tình trạng comment rác sẽ không xảy ra nữa 😀 .Bạn có thể kiểm tra “ngay và luôn” bằng cách comment bên dưới bài viết này, dĩ nhiên là bạn phải trả lời đúng phép tính cộng mà tôi đưa ra :))

27 Comments
  1. Thử phát xem “captcha” của ahx ra sao :))

  2. sao không chơi TV có dấu luôn hả anh, nếu mà chơi được câu trả lời có dấu thì có soft thánh cũng không qua được =))

  3. Test mã captcha của AHX, he he =))

  4. Cái này áp dụng liền và ngay mới được :d

  5. He he!, e đã test!; giờ e mới biết blog của AHX là blog WordPress; e cũng mới tập tành viết blog Google; nếu anh có vào: chiasenhe.blogspot.com xem nội dung thì đừng cười em nhé, các bài e post trên đó là để thử nghiệm và xem giao diện có đẹp ko thôi. AHX cho e hỏi này tí: theo anh thì làm trang blog bằng blogspot của google với WordPress cái nào hay hơn. hiện e đang phân vân…

  6. Mình dùng plugin Akismet từ 2 năm nay thấy không sót 1 em spam nào.

  7. Sau anhhangxom hỏi có một câu vậy. Làm nhiều câu hỏi ngẫu nhiên để an toàn hơn.

  8. Anh Hàng Xóm làm thế này không hay lắm. Mặc dù có thể giảm được số lượng spam nhưng câu trả lời không random thì người ta có thể auto post câu trả lời vào và mặc định đúng. Theo mình làm captcha bằng chữ hoặc hình ảnh có hiệu quả hơn 😀

    • Thực tế là cách này khá ổn, mặc dù phải làm bằng tay. Tính tới thời điểm này, sau khoảng 1 tuần triển khai thì có tổng cộng…4 comment rác lọt sổ, có lẽ nó random câu trả lời tự động nên vượt qua được. Nếu sử dụng các plugin (có random) thì con số này chắc phải tới gần 10.000 rồi -> việc random và sử dụng các plugin xài tiếng Anh là vô dụng với bọn auto bot.

      Vì vậy mà mình quyết định xài cách này mà không cần random. Khó có khả năng bọn nó cập nhật câu trả lời cho riêng blog của mình. Hoặc nếu cập nhật được thì sẽ mất một khoảng thời gian rất lâu -> tới lúc đó mình sẽ đổi câu khác khó hơn. Mấy ngày nay, mục Spam của WordPress luôn là con số 0.

  9. Minh có đang dùng akismet free trên blog thấy khá hiệu quả
    Trước cũng chơi làm toán để chặn spam nhưng không hiểu sao tụ dưng nó biến mất
    Nhưng cách của bạn này có vẻ hiệu nghiệm nhất ý nhỉ

  10. Blog của em cũng bị thế, dạo này nó nhiều spam đến phát nản, em bật và sử dụng Akismet. Thấy khá hữu ích

  11. Akismet đúng là hữu ích nhưng nó cho phép comment “chui” vào DB. Thư mục Spam lúc nào cũng đầy ắp hàng ngàn comment mỗi ngày :(( .Với cách làm này thì không cần đến Akismet và thư mục Spam gần như là trống rỗng 😀

  12. cách này hay thật, mình làm và cũng thấy thành công. Giá mà trả lời sai nó thông báo nữa thì mới hay AHX nhỉ .

  13. Mình có 1 gợi ý là thay thế cái chữ exit; bằng wp_die( __(‘ERROR: Please enter the captcha.’) );
    Thì thông báo sẽ rõ ràng hơn AHX nhỉ ?

  14. đại ca cho cái link download code với.

Gửi phản hồi