Eu estava pensando em como a recaptcha está ficando mais difícil quando pensei em outra solução possível. As imagens não duram para sempre, então precisaremos de algo mais algum dia - como lógica ou emoção humana. O Google e outros estão tentando agrupar imagens por categoria (encontre a imagem que não pertence), mas isso exige uma grande quantidade de imagens e não funciona para os cegos.
De qualquer forma, e se uma coleção massiva de texto fosse reunida (livros de domínio público de cada idioma) e uma frase fosse exibida ao usuário com 1 (ou 2) palavras que fossem uma caixa de seleção? Somente computadores que sabiam gramática inglesa / espanhola / alemã correta seriam capazes de dizer quais das palavras pertenciam à frase.
Haveria algum problema com essa abordagem? Eu diria que seria fácil o suficiente para qualquer um que conhecesse o idioma em que o sentense era exibido para descobrir a resposta mais fácil do que tentar ler o texto reCAPTCHA. Além disso, armazenar um número insano de frases levaria apenas alguns gigabytes de espaço e não levaria nem um pouco perto do tempo da CPU, criando imagens / tomadas de áudio. Em outras palavras, qualquer pessoa poderia hospedar seu próprio sistema captcha com um impacto mínimo no desempenho do sistema.
Existe algum problema com essa abordagem? Mais especificamente, estou procurando o principal problema com essa abordagem.
Respostas:
Primeiro, eu lhe dou o Watson da IBM . Eu acho que a computação excedeu em muito o simples preenchimento dos problemas em branco da linguagem.
A seguir, dou a você todos os verificadores ortográficos / gramaticais implementados em software. Determinar se uma palavra está gramaticalmente correta em uma frase é resolvido em> 90% dos casos. Vou até esticar o pescoço e dizer que eles são melhores em alfabetização do que a maioria dos humanos que conheço.
Não acho que a sua ideia de CAPTCHA funcione tão bem quanto você espera ...
fonte
Vamos ver, quanto tempo levaria para sempre selecionar a primeira opção e, eventualmente, acertar?
fonte
Se você está usando frases de livros de domínio público, um bot não precisa saber nada sobre gramática. Seria apenas necessário indexar essas mesmas sentenças e fazer uma pesquisa para descobrir qual palavra a sentença real usava. E isso pressupõe que você resolva razoavelmente o problema que Jeff O sugeriu onde você pode contornar o problema, adivinhando sempre a primeira opção.
Além disso, muitas das frases no universo de livros de domínio público seriam inadequadas para esse tipo de empreendimento. Muitos seriam ambíguos sem contexto. Muitos conteriam conteúdo censurável (imagine apresentar uma frase aleatória de Huckleberry Finn). Portanto, você teria que investir um esforço considerável para chegar a um conjunto de sentenças que não serão ofensivas nem ambíguas. Se você aceitar que algumas frases serão ambíguas, você perde grande parte da capacidade de punir bots por adivinhações incorretas.
fonte
Um problema mais desafiador para os robôs seria remover uma palavra de uma frase e, em seguida, apresentar uma escolha entre quatro palavras diferentes da mesma parte do discurso. (Por exemplo, remova um substantivo; qual desses quatro substantivos se encaixa melhor aqui?)
Os algoritmos de marcação e análise não são perfeitos, mas as abordagens baseadas em corpus chegaram ao ponto em que você pode treinar um analisador suficientemente bem para ajudá-lo a vencer as probabilidades de um CAPTCHA com software de código aberto ou de commodity. (Quando você está enviando spam em volume, tudo bem se algumas mensagens não forem exibidas, desde que o suficiente para aumentar sua taxa geral de sucesso.)
Os computadores ainda não são tão bons com a semântica.
fonte
A maior parte do spam que recebo atualmente não é gerada por bot. Recebo muitos spams provenientes de países do terceiro mundo, onde as pessoas são contratadas por alguns centavos por hora para postar mensagens em fóruns e blogs.
Nenhum sistema que diferencie humanos e computadores interrompe isso.
Por esse motivo, acabei totalmente com o CAPTCHA em meus sites. Em vez disso, eu tenho uma solução baseada em javascript bastante simples (basicamente, o Javascript em execução no cliente reorganiza os campos para que, se você postar com o Javascript desativado, ele falhar). Isso interrompe 95% do spam de bots, mas obviamente não afeta o spam humano - mas também não seria um CAPTCHA.
fonte
A resposta pode se tornar subjetiva (na realidade não é subjetiva, mas a falta de conceitos de linguagem abrange todas as sociedades) e difícil para aqueles que não falam a língua nativamente.
Se existe uma lista finita de regras gramaticais (que toda linguagem possui) sendo apresentada, ela simplesmente se torna um algoritmo; acessível agora por qualquer máquina disposta a implementar o algoritmo.
fonte
Mas, ignorando essas sérias dicas, existe o problema das línguas.
Línguas aglutinantes como húngaro ou finlandês se prestam facilmente a esse tipo de captchas, porque as palavras podem ter muitos sufixos e cada uma serve a um propósito diferente na frase (por exemplo, o mesmo substantivo tem um sufixo diferente quando usado como objeto ou sujeito) Se as regras são complicadas apenas para humanos, uma máquina encontrará a correta em algumas tentativas.
Isolar idiomas (o inglês é um exemplo aproximado, o chinês mandarim é muito mais limpo) é ainda pior, pois a gramática é ditada principalmente pela posição na frase e não pela forma da palavra.
Idiomas fusionais como russo ou grego provavelmente apresentam mais um conjunto de problemas e assim por diante.
Para resumir, enigmas linguísticos que traduzem bem e são difíceis de adivinhar aleatoriamente são notoriamente difíceis de encontrar. Provavelmente é muito mais fácil se concentrar na semântica do que na sintaxe. Por exemplo, "Continue a seguinte sequência: quinta, quarta, terça ..." ou "assar, fritar, assar ..." e assim por diante.
fonte
A idéia comum por trás de um captcha é que ele deve parar os bots quase o tempo todo. Uma escolha múltipla entre N respostas interrompe o bot apenas (N - 1) / N do tempo e, portanto, o bot realiza uma média de N tentativas.
Você pode implementar tempos limite para respostas erradas do captcha, mas não pode ser muito rigoroso com isso sem incomodar seriamente as pessoas que não são bons falantes de inglês (ou o que seja) ou têm problemas com caixas de seleção (mãos trêmulas, ratos ruins, outros desvantagens). Além disso, o tempo limite não vai parar uma botnet, pois os palpites podem vir de IPs diferentes.
Além disso, como você garante que haja apenas uma resposta legítima? Uma frase selecionada aleatoriamente do Projeto Gutenberg pode fazer sentido com vários substantivos selecionados aleatoriamente, mas apenas um é a resposta certa.
fonte
Tudo o que você está fazendo é dificultar o uso do site por humanos, enquanto nos bots você não está adicionando nenhum obstáculo.
O que você deveria focar é criar um mecanismo que detecte automaticamente se algo postado é spam e bloqueie a postagem, se for (adiando-o para a moderação humana, por exemplo, e dando uma mensagem ao pôster nessa medida).
Os CAPTCHAs chegaram ao ponto em que são tão irritantes que tendem a evitar cada vez mais sites que os usam, e muitos comigo. Isto, especialmente porque são amplamente conhecidos por não terem nenhum efeito sobre os spambots.
fonte