Vinova tuyển lập trình viên Mobile & Web ở Hà Nội, lương $300-1000

Article: ondemandcaptcha 1238

Rails plugin
ngocdaothanh.myopenid.com 172
Updated 9 months ago

Spam là thuật ngữ thường để chỉ việc dùng chương trình máy tính để tự động gửi hàng loạt message đến địa chỉ nào đó đã biết trước. Có nhiều loại spam, spam mail , spam diễn đàn, spam wiki, spam blog... Vừa rồi diễn đàn Java Việt Nam bị spam suốt mấy ngày, mặc dù tính năng chống spam có nhưng không được bật!

Để chống spam, vấn đề cốt lõi là phân biệt message gửi đến là do người hay máy gửi. Đó chính là ý tưởng của CAPTCHA.

Bài viết này xin giới thiệu cách sử dụng plugin ondemandcaptcha có mã nguồn mở dùng cho framework Rails để chống spam. Nó được dùng cho trang web này, muốn thử xin thử viết bài mới rồi click "Xong".

Tại sao tên lại là ondemandcaptcha?

Các loại CAPTCHA đa số đều hiện mỗi form một CAPTCHA. Như vậy nếu cùng trang web mà có nhiều form, thì CAPTCHA sẽ hiện ra nhiều lần, rất mất thẩm mỹ và bối rối cho người dùng.

ondemandcaptcha đưa ra giải pháp là chỉ khi click submit thì mới hiện ra modal dialog có chứa CAPTCHA. Như vậy CAPTCHA chỉ hiện ra khi cần thiết, nên tên của plugin được đặt là "on-demand" CAPTCHA. Tuy nhiên RubyForge chỉ cho phép tên của project dài tối đa 15 kí tự, nên cuối cùng tên plugin này được đặt là ondemandcaptcha.

Ảnh CAPTCHA được tạo ra như thế nào?

ondemandcaptcha không tự tạo ảnh, mà dùng dịch vụ reCAPTCHA. Ảnh là chữ được scan từ sách. Do đó sử dụng ondemandcaptcha là cách rất tốt để cùng cộng đồng "luộc" sách giấy thành ebook.

Cài đặt, sử dụng... ra sao?

Download rồi giải nén vào thư mục vendor/plugins/ondemandcaptcha của project Rails của bạn. Sau đó đọc tập tin REAMDE trong thư mục đó để biết phải làm gì tiếp theo.

Comments

akia.myopenid.com 6
Updated over 3 years ago

Từ rails 2.0 trở đi có lẽ không cần đến plugin này? Rails 2 cung cấp sẵn chức năng protect_from_forgery để chống CSRF. Chức năng này cho sẽ nhận dạng dữ liệu có được gửi đến từ form hợp lệ hay không, từ đó quyết định việc có cho phép thay đổi dữ liệu trong DB hay không.

Thông tin thêm về chức năng này, xem tại:

ngocdaothanh.myopenid.com 172
Updated over 3 years ago

CSRF và CAPTCHA là 2 thứ độc lập, ví dụ nếu bạn đang đọc dòng này, thì có nghĩa bạn đã bị logout khỏi Gmail vì bị CSRF. Bạn thấy đấy, chẳng liên quan gì đến CATPCHA{#emotions_dlg.tongue_out} Hơn thế, dùng CAPTCHA thì hệ quả là không cần chống CSRF nữa, chứ không phải ngược lại{#emotions_dlg.wink}

You must login to be able to comment

Uploaded files

No file uploaded yet

You must login to be able to upload

Nhà tài trợ:

Mọi người đều tự do viết bài, sửa bài của người khác, và bình luận ở trang web này. Bạn muốn chủ động tạo bài mới để chia sẻ kinh nghiệm với mọi người? Xin click link ở dưới.

Create new content