2009-09-19 18 views
8

Szukam tutaj inspiracji. Potrzebuję przeprowadzić jakąś ludzką weryfikację na mojej stronie internetowej, ale najczęstsza metoda w dzisiejszych czasach (proszenie użytkowników o wpisanie liter w polu tekstowym) wydaje się trochę bzdurą - Czasami, aby dowiedzieć się, jakie są liczby liter &.alternatywne metody captcha

Musi istnieć lepszy sposób!

Miałem kilka pomysłów, najlepszym wydaje się pokazywanie użytkownikom serii zdjęć (4-6) i poproszenie ich o udzielenie odpowiedzi na pytanie w oparciu o zawartość obrazów, takich jak:

(pokaż niektóre kształty geometryczne) "Który obraz ma 3 strony?"

lub

(pokaż obraz zwierząt) "który zwierzę może latać?"

Ma to tę zaletę, że jest łatwy do zaprogramowania i, miejmy nadzieję, łatwy do przekazania.

Czy ktoś może pomyśleć o innym podejściu do tego problemu? Lub ewentualnie wad punktowych w systemie przedstawionym powyżej? Czy jest możliwe, aby takie systemy były łatwiejsze do przejścia dla ludzi, a trudniejsze do przejścia przez boty?

Odpowiedz

2

Mimo że jest trochę stary, naprawdę uważam, że jest to zabawne (i prawdopodobnie bardzo skuteczne) podejście captcha. Wydaje się jednak, że jest tylko jeden demo on their contact page.

Problem z podejściami opartymi na czystym obrazie (w przeciwieństwie do obrazów tekstowych) polega na tym, że zasadniczo uniemożliwiasz niewidomym użytkownikom korzystanie z Twojej witryny. Autor KittenAuth potwierdził to na jednym z komentarzy na swojej stronie.

Jak śmiesznym małym jeźdźca KittenAuth, this page ma „10 najgorszych CAPTCHA wszech czasów”, w tym jeden z moich ulubionych:

calculus captcha

+0

Formularz było zaczerpnięte z: http://random.irb.hr/signup.php –

+0

czysty sposób, aby mieć dobrze wykształconych członków tylko :) – Zed

+0

Dobrze wykształceni członkowie, lub po prostu ktoś (lub coś!), którzy mogą korzystać z wolfram alfa: http: // www.wolframalpha.com/input/?i=Dt[4+sin+(7x+-+pi/2),+x]++/.+x+-%3E+0 – Joren

1

wypróbować system kwestia wyzwania, gdzie proste pytanie domaga się prostej odpowiedzi poznawczej. Na przykład poproś użytkownika o udzielenie odpowiedzi na następujące pytanie:

Trzy samochody na ulicy mogą zobaczyć jeszcze trzy samochody. Ile jest w sumie samochodów?

Technologia nie jest tak zaawansowana, że ​​bot wrażliwy na przepustowość jest w stanie odpowiedzieć na takie pytanie, ale na to pytanie łatwo odpowiedzieć. Użytkownik musi wprowadzić trzy lub trzy, aby sprawdzić, czy jest człowiekiem, a nie maszyną. Musiałbyś mieć wystarczająco duży bank pytań, że bot nie będzie po prostu pingował twojej strony patrząc na pytania do zapisania, aby mógł powrócić z odpowiedziami w ręku.

+3

Po prostu zawiodłeś własny captcha. Jeśli każdy samochód może zobaczyć trzy inne samochody, są cztery samochody. – SquareCog

+0

Nie, oczywiście 3 samochody razem tworzą kolektyw typu Borga, a więc "widzą" jako jedno. Wiedziałbyś, że gdybyś był Jednym z nas. – RedFilter

1

Szczególnie podoba mi się przykład "jakie zwierzę może latać". Proste & Skuteczne.

Ale tego rodzaju rzeczy mogą być nadużywane. Nie byłoby trudno nadać temu kulturalnemu uprzedzeniu lub być postrzeganym.

I, jak pokazał austin cheney, może łatwo stać się rodzajem testu inteligencji, a Ty będziesz mieć problem z Dostępnością.

+1

(Chciałbym zaznaczyć, że moja odpowiedź padła przed komentarzem SquareCog, miałem na myśli wzmiankę austin o "prostej odpowiedzi poznawczej" jako "teście inteligencji" i niczym więcej.) – pavium

+0

"Które zwierzę może latać" nietoperzem Oczywiście :) – Rucent88

1

Spróbuj użyć procesu przesyłania opartego na ajaxu, który jest uruchamiany przez kliknięcie zwykłego przycisku (nie przycisku przesyłania), to naprawdę proste z jQuery.

O ile mogę powiedzieć, spamboty nie mają javascript.

Jeśli martwisz się użytkownikami bez włączonego javascript, myślę, że nie ma problemu z przesłaniem formularza. Jeśli nie mogą ufać, że włączysz javascript w Twojej witrynie, to nie twoja wina, że ​​nie mogą w pełni korzystać z witryny.

EDIT:

zobacz także: Practical non-image based CAPTCHA approaches?

Problem jednak, jeśli ktoś jest kierowana witryny celowo, tego rodzaju techniki nie będzie działać.

EDIT2:

nie mogę podać link do prawdziwego przykładu życia, ale blogged o nim nieco więcej szczegółów, tak oto przykładowy kod:

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

To może być prawdą w tej chwili, ale nie sądzę, że to potrwa długo zanim spamboty faktycznie będą mogły używać Javascript. Istnieje kilka bibliotek, które bardzo ułatwiają skryptom analizowanie i uruchamianie Javascript. –

+0

Zauważ, że nie użyłem standardowego przycisku przesyłania, ale zwykłego przycisku z metodą onclick. Jeśli spamboty używają javascript, muszą dowiedzieć się, który przycisk kliknąć, zakładając, że jest to przycisk, a nie zakotwiczony znacznik ze zdarzeniem onclick. – hasen

+0

Mimo to wygląda na to, że po prostu opóźniamy to, co nieuniknione? – alphthethird