2009-09-19 39 views
8

Tôi đang tìm nguồn cảm hứng ở đây. Tôi cần phải sử dụng một số loại xác minh của con người cho trang web của tôi, nhưng phương pháp phổ biến nhất những ngày này (yêu cầu người dùng nhập các chữ số & số họ nhìn thấy trong một hình ảnh vào hộp nhập văn bản) có vẻ như một chút rác - Tôi thấy khó đôi khi tìm ra những chữ cái &.phương pháp captcha thay thế

Phải có cách tốt hơn!

Tôi đã có một vài ý tưởng, cách tốt nhất là hiển thị cho người dùng một loạt hình ảnh (4-6) và yêu cầu họ trả lời câu hỏi dựa trên nội dung của hình ảnh, chẳng hạn như:

(hiển thị một số hình dạng hình học) "Hình ảnh nào có 3 cạnh?"

hoặc

(hiển thị ảnh động vật) "động vật nào có thể bay?"

Điều này có lợi thế là dễ dàng lập trình và hy vọng dễ dàng vượt qua.

Có ai có thể nghĩ ra bất kỳ cách tiếp cận nào khác cho vấn đề này không? Hoặc có thể phát hiện lỗi trong hệ thống được nêu ở trên? Có thể làm cho các hệ thống như vậy dễ dàng hơn cho con người để vượt qua, và khó hơn cho các chương trình để vượt qua?

Trả lời

2

Mặc dù nó hơi cũ, tôi thực sự tìm thấy KittenAuth là một cách tiếp cận captcha thú vị (và có lẽ rất hiệu quả). Tuy nhiên, dường như chỉ có một demo on their contact page.

Sự cố với phương pháp dựa trên hình ảnh thuần túy (trái với hình ảnh văn bản) là bạn về cơ bản ngăn người dùng khiếm thị sử dụng trang web của bạn. Tác giả KittenAuth đã thừa nhận điều này trên một trong các nhận xét trên trang web của anh ấy.

Là một kỵ sĩ chút hài hước để KittenAuth, this page có "10 của Captchas tồi tệ nhất mọi thời đại", bao gồm một trong những mục yêu thích của tôi:

calculus captcha

+0

Các hình thức đó là lấy từ: http://random.irb.hr/signup.php –

+0

cách gọn gàng để chỉ có các thành viên được giáo dục tốt :) – Zed

+0

Thành viên được giáo dục tốt, hoặc chỉ một ai đó (hoặc một cái gì đó!), những người có thể sử dụng ma trận alpha: http: // www.wolframalpha.com/input/?i=Dt[4+sin+(7x+-+pi/2),+x]++/.+x+-%3E+0 – Joren

1

Hãy thử sử dụng một hệ thống câu hỏi thách thức mà một câu hỏi đơn giản yêu cầu một phản ứng nhận thức đơn giản. Ví dụ: yêu cầu người dùng trả lời câu hỏi ví dụ sau:

Ba xe trên đường phố có thể nhìn thấy ba xe ô tô nữa. Có bao nhiêu chiếc xe?

Công nghệ không quá tiên tiến đến mức một bot nhạy cảm băng thông có khả năng trả lời một câu hỏi như vậy và câu hỏi này rất dễ trả lời. Người dùng phải nhập ba hoặc 3 để xác minh họ là người chứ không phải máy. Bạn sẽ phải có một ngân hàng đủ lớn các câu hỏi mà một bot sẽ không chỉ đơn giản là ping trang web của bạn nhìn vào các câu hỏi để ghi lại để nó có thể trở lại với câu trả lời trong tay.

+3

Bạn vừa không nhập hình ảnh xác thực của riêng mình. Nếu mỗi chiếc xe có thể nhìn thấy ba chiếc xe khác, có bốn chiếc xe tổng cộng. – SquareCog

+0

Không, rõ ràng là 3 chiếc xe cùng nhau tạo thành một tập thể giống Borg, và do đó "nhìn thấy" như một. Bạn sẽ biết rằng nếu bạn là One Of Us. – RedFilter

1

Tôi đặc biệt thích ví dụ "động vật có thể bay". Đơn giản & Hiệu quả.

Nhưng loại điều này có thể bị lạm dụng. Nó sẽ không khó để cho nó một thiên vị văn hóa — hoặc một cảm nhận.

Và, như austin cheney đã cho thấy, nó có thể dễ dàng trở thành một loại kiểm tra trí thông minh và bạn sẽ gặp phải vấn đề về Trợ năng.

+1

(Tôi muốn chỉ ra rằng câu trả lời của tôi đến trước bình luận của SquareCog. Tôi đã đề cập đến austin đề cập đến 'phản ứng nhận thức đơn giản' như một 'kiểm tra trí thông minh', và không có gì khác.) – pavium

+0

"mà động vật có thể bay" dĩ nhiên :) – Rucent88

1

Thử sử dụng quy trình gửi dựa trên ajax được kích hoạt bằng cách nhấp vào nút bình thường (không phải nút gửi), thật dễ dàng với jQuery.

Theo như tôi có thể nói, spambots không có javascript.

Nếu bạn lo lắng về người dùng không bật javascript, tôi nghĩ hoàn toàn ổn khi họ không thể gửi biểu mẫu. Nếu họ không thể tin tưởng bạn để kích hoạt javascript trên trang web của bạn, nó không phải là lỗi của bạn mà họ không thể sử dụng trang web đến mức tối đa của nó.

EDIT:

Xem thêm: Practical non-image based CAPTCHA approaches?

Vấn đề tuy nhiên, nếu ai đó đang nhắm mục tiêu trang web của bạn cố ý, loại kỹ thuật sẽ không làm việc.

EDIT2:

tôi không thể cung cấp một liên kết đến một ví dụ thực tế đời sống, nhưng tôi blogged về nó với nhiều hơn một chút chi tiết, vì vậy đây là một số mẫu mã:

function submit_form() 
{ 
    jQuery.ajax({ 
     "type": "POST", // or GET 
     "url": 'action_url', // The url you wish to send the data to, the url you'd put in the "action" attribute on the form tag 
     "data": jQuery("form#the-form").serialize(), // The data you'll send. You need to get the form somehow. Easiest way is to give it an id. 
     "dataType": "json", // Only put this if the server sends the response in json format 
     "success": function(data, textStatus) // server responded with http status 200 
     { 
      // This is the happy case: server response has arrived 
     }, 
     "error": function(req, textStatus, errorThrown) // maybe HTTP 404 or HTTP 500 
     { 
      // something went wrong, the response didn't go through or the response didn't come. Handle the situation: let the user know, or something. 
     }, 
     "complete": function(req, textStatus) // This one always gets called anyway 
     { 
      // cleanup after yourself 
     } // XXX careful: if you put a comma here, IE6 will fail 
     }); 
} 
+0

Điều đó có thể đúng vào lúc này, nhưng tôi không nghĩ rằng nó sẽ tồn tại lâu trước khi spambots thực sự có thể sử dụng Javascript. Có một số thư viện mà làm cho nó rất dễ dàng cho các kịch bản để phân tích cú pháp và thực thi Javascript. –

+0

Lưu ý cách tôi nói không sử dụng nút gửi tiêu chuẩn, nhưng nút thông thường có phương thức onclick. Nếu spambots sử dụng javascript, họ phải tìm ra nút nào để bấm, giả sử đó là một nút và không phải là một thẻ neo với sự kiện onclick. – hasen

+0

Mặc dù vậy, có vẻ như với tuyến đường này, chúng tôi chỉ trì hoãn việc không thể tránh khỏi? – alphthethird

Các vấn đề liên quan