Evitar spam usando Honey Pots

8

Estou realmente curioso para saber como evitar o spam de comentários em um fórum usando uma armadilha de mel para bots de spam.

  • E se CSS e javascript estiverem desativados em um navegador?

  • Você vê outras desvantagens na armadilha do pote de mel?

  • O que você acha que toda armadilha para pote de mel deve ter?

  • Você conhece alguma outra alternativa anti-spam que não perturbe a experiência do usuário.

sfrj
fonte
Estou migrando isso para webmasters. Observe que você ainda pode precisar melhorar a pergunta para ajustar-se aos padrões deles.
NullUserException 28/11
Eu removi a solicitação de código CSS / HTML, pois está fora do tópico aqui. Você pode perguntar isso no StackOverflow. Mas recomendo que você escreva seu próprio código primeiro e depois peça ajuda a eles, se você tiver problemas. Apenas pedir que outras pessoas escrevam código para você receberá muitos votos negativos e talvez até tenha a pergunta encerrada.
John Conde
Qual script do fórum você está usando? Alguns já têm implementações de honeypot como plugins / módulos / qualquer outra coisa.
Su
2
Os CAPTCHAs do @Rook foram demonstrados repetidamente como solucionáveis ​​por robôs e punem todos independentemente. Trata-se de uma opção transparente para humanos.
Su

Respostas:

4

E se CSS e javascript estiverem desativados em um navegador?

Um honeypot adequado não dependerá de nenhum deles para funcionar. Idealmente, você usará um campo de formulário oculto para isso, que não requer nenhum esconderijo real.

Você vê outras desvantagens na armadilha do pote de mel?

Se você fizer isso corretamente, não deverá haver nenhum problema que os usuários estejam cientes. Haverá uma pequena quantidade de sobrecarga necessária para que ele funcione, mas isso deve ser tão pequeno que nem deve ser uma preocupação.

Você conhece alguma outra alternativa anti-spam que não perturbe a experiência do usuário.

De uma resposta anterior : você pode fazer várias coisas (e deve fazer mais de uma), incluindo:

  1. Use um CAPATCHA como reCAPTCHA

  2. Use um campo que exija que o usuário responda a uma pergunta como o que é 5 + 3. Qualquer humano pode responder, mas um bot não saberá o que fazer, pois está preenchendo automaticamente os campos com base nos nomes dos campos. Portanto, esse campo estará incorreto ou ausente. Nesse caso, o envio será rejeitado.

  3. Use um token e coloque-o em uma sessão e também adicione-o ao formulário. Se o token não for enviado com o formulário ou não corresponder, será automatizado e poderá ser ignorado.

  4. Procure envios repetidos do mesmo endereço IP. Se o seu formulário não receber muitas solicitações, mas de repente ele provavelmente está sendo atingido por um bot e considere bloquear temporariamente o endereço IP.

  5. Use Askimet . É ótimo para identificar spam.

Leitura recomendada: Como funcionam os spambots?

John Conde
fonte
2
1 e 2 são intrusivos. 3 também podem ser automatizados.
NullUserException
@ John Conde Isso foi muito útil. Vou tentar melhorar o meu pote de mel. Obrigado!
Sfrj #
1

Tenho certeza de que os robôs de formulários ignoram todos os <input type="hidden">campos. A melhor solução é usar a entrada de texto normalmente, com um tipo de dados comum. Tudo o que você não está usando no momento é bom, como site, endereço, CEP, nome de usuário etc.

Adicione uma mensagem dizendo "se você puder ver este campo, deixe em branco". Quebra da mensagem e entrada em um elemento div com CSS configurado para exibir: none.

Infelizmente, enquanto a maioria dos bots de spam é muito simples e burra, muitos são mais inteligentes e podem detectar qualquer truque popular. Dependendo da natureza do formulário, pode ser melhor usar o CAPTCHA ou o Akismet.

DisgruntledGoat
fonte
1

Algo que muitas vezes não vejo sugerido é uma solução captcha baseada em tempo. O spam funciona melhor divulgando-o o mais rápido possível. Substituí o ReCaptcha hospedado pelo Google por um atraso de envio de 20 segundos para meus formulários de contato usando sessões PHP e reduzia consideravelmente o spam. Eu descobri o tempo de atraso usando os dados do Google Analytics no comportamento do usuário.

Cycododge
fonte