Chặn spambot với Honeypot Captcha

Form đăng ký, liên hệ online được dùng khá phổ biến ở các website. Tuy nhiên, với việc các spambot càng ngày càng hoạt động nhiều, sử dụng form trực tuyến đồng nghĩa với việc bạn có thể phải nhận nhiều thư rác hơn.

chặn spambot với honeypot

Có 1 số kỹ thuật để khắc phục vấn đề này, mà tiêu biểu là sử dụng captcha. Đây là một kỹ thuật đưa thêm 1 chuỗi ký tự không xác định trước vào form, và yêu cầu người dùng nhập vào chính xác chuỗi ký tự này. Việc này giúp giảm được 1 số spambot tự động. Tuy nhiên, theo 1 số nghiên cứu thì nó cũng làm giảm số người dùng thật khi muốn liên hệ qua website. Không phải ai cũng để ý đến việc phải nhập vào chính xác chuỗi ký tự này.

Một kỹ thuật khác được phát triển nhằm khắc phục nhược điểm đó. Kỹ thuật này được gọi là Honeypot captcha. Dựa trên tính năng của CSS, và đặc tính của các spam bots là không phân biệt được các form đăng ký được hiển thị hay không, kỹ thuật Honeypot captcha đang được áp dụng khá tốt. Cách làm rất đơn giản

  • thiết lập 1 class CSS có thuộc tính “display:none”
  • thêm một trường dạng text vào form đăng ký, sử dụng class vừa tạo ở trên, có giá trị rỗng, độ lớn=0
  • khi form được gửi, kiểm tra giá trị của trường rỗng bên trên. Nếu trường này có giá trị khác rỗng, đánh dấu đây là spam

Bình thường, trường này không hiển thị trên form, do vậy, người dùng thực sẽ không điền giá trị gì, và sẽ được trả về với giá trị rỗng. Tuy nhiên, spam bots sẽ điền thông tin vào tất cả các trường đăng ký trong form, mà không biết có 1 trường đang được ẩn. Do vậy, sẽ tạo sự khác nhau khi kiểm tra dữ liệu được gửi đi, mà vẫn không gây khó khăn gì cho người dùng thực 🙂