Duas maneiras mais fáceis de passar pelo CAPTCHA:
-
Use farms humanos, ou seja, peça para as pessoas preencherem CAPTCHAs por dinheiro, exatamente como ProTypers .
-
Use um OCR.
Também pode haver um bug no próprio mecanismo CAPTCHA ou no aplicativo circundante, permitindo que alguém ignore o CAPTCHA.
A propósito, o artigo do W3C Inacessibilidade do CAPTCHA: Alternativas aos Testes Visual Turing na Web também explica como os CAPTCHAs podem ser comprometidos:
[...] One of the first documented attacks on the system was by a Carnegie Mellon student, who associated CAPTCHA images with access to an adult Web site, thus gaining free human labor to crack the authentication. [...]
External projects [...] have shown methodologies and results indicating that many of the systems can be defeated by computers with between 88% and 100% accuracy, using optical character recognition.
Então, como você pode evitar esses ataques?
-
Se você tiver seu CAPTCHA implementado personalizado, tente mover para um popular, como reCAPTCHA .
Isso ajudará se o seu próprio CAPTCHA for muito fácil para o OCR ou se houver um bug que foi explorado com sucesso.
-
Se você usa um mecanismo CAPTCHA popular, a migração para um personalizado ou para outro popular pode impedir o OCR.
Você pode querer passar do CAPTCHA visual para o som (se você não estiver usando os dois já e você deve), mas isso significa que os usuários com deficiência auditiva não conseguirão usar o aplicativo.
FrustratedWithFormsDesigner e GalacticCowboy mencionado nos CAPTCHAs específicos do domínio de comentários. Eu tentei encontrar algum material sobre o quão efetivo eles são, mas sem sucesso, então aqui está apenas minha opinião pessoal:
-
CAPTCHAs específicos de domínio podem ser extremamente irritantes quando usuários reais não têm idéia da resposta.
Exemplo: estou visitando uma página em um site orientado a filmes. Percebo um erro em um artigo e quero comentar sobre ele para notificar o autor sobre o erro. O formulário de comentários me pede, como um mecanismo CAPTCHA, para fornecer o nome da atriz exibida em uma foto. Eu não tenho idéia de quem é essa atriz, então a única coisa que posso fazer é deixar o site (ou passar os próximos dois minutos usando o Imagens do Google).
Outro exemplo: um site pede para dar um sinônimo de "misterioso". Por mais fácil que pareça para uma pessoa não deficiente que fala inglês fluentemente, seria impossível resolver sem ajuda externa para pessoas que não falam inglês bem ou pessoas com deficiências de desenvolvimento, sem contar o fato de que encontrar sinônimos ou antônimos é sempre complicado.
-
A maioria desses problemas específicos de domínio pode ser resolvida de forma programática. Ambos os exemplos que dei são facilmente resolvidos usando recursos externos (Google Images e sinônimos). Aquele sobre transistores dado como um exemplo por FrustratedWithFormsDesigner é melhor, mas ainda pode ser provavelmente resolvido com um bot feito sob medida.
-
Nenhum resiste a fazendas humanas.
-
Ou eles geram dados, assim como os CAPTCHAs de texto comum desenham caracteres distorcidos, caso em que o algoritmo de geração pode ser explorado para sintonizar os bots, ou eles encontram dados em algum lugar, assim como reCAPTCHA obtém texto de livros digitalizados , caso em que o bot pode usar esses dados contra ele (por exemplo, se você pegar palavras de um dicionário, perguntar o usuário para fornecer sinônimos, o bot pode usar o mesmo dicionário para ter 100% de sucesso).