CAPTCHA là chữ viết tắt của “Completely Automated Public Turing test to tell Computers and Humans Apart”. Nói ngắn gọn thì nó là cách để giảm spam đặc biệt là những trang web cho phép đăng ký thành viên, gửi form liên lạc. Có rất nhiều chương trình spam tự động mà nếu không có CAPTCHA hoặc những biện pháp ngăn chặn tương ứng. Thì bạn rất có thể trở thành nạn nhân của Spam.
Trong bài này tôi không cố gắng tạo ra một CAPTCHA có tính bảo mật cao mà tôi chỉ tạo ra một dạng CAPTCHA sử dụng được với những trang web bình thường. Bởi vì hiện giờ có rất nhiều dạng CAPTCHA với các thuật toán phức tạp hơn trong ví dụ này rất nhiều. Tuy code trong bài này không ngăn chặn được những spam bot tinh vi, nhưng những “con” tầm tầm thì diệt tốt. Thêm vào đó trong bài này tôi cũng giới thiệu luôn về một số “hàm” trong PHP cho phép tạo hình ảnh.
Bên lề sân cỏ
Học xong video này chắc chắn bạn có thể tự tạo CAPTCHA cho riêng mình, nhưng có một cách nữa lợi cả đôi đường là sử dụng dịch vụ miễn phí ReCAPTCHA của trường đại học Carnegie Mellon. Bạn không những có một dạng CAPTCHA vô cùng an toàn mà bạn còn giúp đỡ số hóa sách báo. Bởi vì mỗi ngày có đến 200 triệu lượt CAPTCHA được người ta điền vào. Tại sao chúng ta cứ phải phung phí công sức vào mấy thuật toán tạo chữ ngẫu nhiên. Sao chúng ta không sử dụng chúng có ích hơn bằng cách giúp đỡ số hóa sách báo.
Trước đây sách báo in ra đã cũ, người ta muốn số hóa nó để nhân loại đỡ mất đi những kiệt tác văn chương hoặc những tư liệu quý. Sau khi họ scan họ sẽ sử dụng công nghệ đọc chữ từ màn hình để số hóa nó như sau:
Như bạn thấy công nghệ nhận dạng chữ tự động OCR (Optical Character Recognition) không thực sự chính xác. ReCAPTCHA hiệu quả hơn nhiều vì có người thực đọc nó. Cách hoạt động của nó cũng khá đơn giản. Nó lấy trong dữ liệu của nó những từ mà OCR đã bó tay và kết hợp với một từ nó biết. Cho hiển thị ra màn hình và người dùng gõ cả 2 từ, nếu từ nó biết đúng với từ người dùng gõ, nó sẽ kết luận rằng từ kia cũng đúng.
Nếu bạn có ý định sử dụng CAPTCHA hãy sử dụng chương trình trên để đỡ lãng phí nhân lực và giúp đỡ cộng đồng.