captcha ou não?

Odeio captcha, você acha que há uma solução melhor

Você pode verificar as abordagens práticas de CAPTCHA não baseadas em imagens?

Eu fiz uma pergunta antes Preciso de sugestões / ideias para captchas fáceis de usar mas seguras

No entanto, se você está irritado devido à dificuldade enfrentada pelos usuários por causa da própria existência de captchas, então houve muito debate sobre isso e as pessoas ainda estão tentando encontrar uma solução universal que pode funcionar mesmo para muito popular sites.

Você deve ver http://nedbatchelder.com/text/stopbots.html para a implementação de captchas negativas . Mas, infelizmente, isso ainda não é efetivo para ataques de spam específicos do site (quando seu site é muito popular), tanto quanto eu entendi. O autor diz que tem usado estas técnicas com sucesso para sites menos populares. A conclusão geral com os captchas negativos de última geração é que, qualquer técnica que você use, os spammers podem programar seus bots para quebrá-lo em algum momento se eles segmentarem seu site . E eles provavelmente direcionarão seu site quando ele for muito popular. Mas você definitivamente pode usá-los até que seu site não seja muito popular.

As questões matemáticas estão se tornando cada vez mais populares

por exemplo: o que é 3 + 2?

Muitas vezes, são mais fáceis de ler do que captchas, o que pode ser muito confuso para alguns usuários.

Eu tenho uma input de formulário falsa (algo como zip ou qualquer outra informação que os bots gostam de preencher, mas você realmente não precisa) que tenha visibility: hidden; position: absolute visibility: hidden; position: absolute . A motivação por trás disso é obter uma input invisível para o usuário, mas visível para o bot. Então, sempre que você receber um pedido onde essa input específica é preenchida, você sabe que não era um ser humano.

Uso visibility: hidden; position: absolute visibility: hidden; position: absolute para que ela ainda use espaço, mas não confunde o design. Isto é para os bots que usam técnicas mais elaboradas para detectar inputs ocultas, pois, para a JS, algo não está escondido se ocupar qualquer espaço de quantidade.

Eu não testei esta técnica em um site bem sucedido até o momento, mas ainda vale a pena tentar. Tenha cuidado no entanto que alguns navegadores (eu estou olhando para você Safari / OSX!) Que levam informações da sua lista de contatos e preenche todos os campos de input automaticamente (potencialmente até suas inputs ocultas) para você, então é melhor procurar por erros nessa direção.

Resolvi isso de uma forma linda há alguns anos atrás.

Eu tinha um formulário “e-mail me” em um site de pequenas empresas que queria ser acessível ao máximo; Os bots de spam encontraram e começaram a sobrecarregar as mensagens legítimas. Ao ler os logs do servidor, eu aprendi que os bots estavam enviando o formulário sem voltar a buscá-lo primeiro – alguém tinha armazenado no meu formulário e estava simplesmente enviando um POST sempre que eles tinham algum lixo para eu ler. Uma input de formulário oculta ajudaria por alguns dias, mas o dono de algum motor descobriria a input certa, esconderia e o dilúvio começaria novamente.

Eu não tinha nenhum backend onde eu poderia adicionar informações de session ao formulário e não queria adicionar nenhum. Em vez disso, entre a checkbox “Digite sua mensagem aqui” eo ​​elemento oculto, inseri a saída de um script que escreve

There will be a short delay before you may submit the form. If you
have been typing in your information, the delay may already have
ended.


4 ...


O bloco de lixo é gerado aleatoriamente para dificultar a compression. Experimentei com quanto tempo os blocos de lixo precisavam ser. Quando recebi o tamanho do formulário até cerca de 200K, as mensagens de spam pararam.

Na verdade, não é um monte de dados extras, como adicionar algumas imagens extras à página. Mesmo para um cliente hipotético no dialup, o atraso entre renderizar a checkbox de texto e renderizar o botão enviar é menor do que o tempo que provavelmente levaria para realmente compor uma mensagem.

há um bom truque que você pode usar, definindo uma input vazia, displayed none para o usuário, mas visível para o bot.

e se essa input foi arquivada !=="" vazio, fale falso para o formulário.

há mais aqui http://klauskjeldsen.dk/avoid-html-form-spam-using-css/

Se você odeia captcha, então posso dar-lhe duas outras opções rápidas:

  • qualquer tipo de autenticação (o Facebook liga você quase sabe com certeza que o usuário é confiável).
  • akismet