Pergunta

Eu estou tentando reduzir o formulário de spam no nosso site.(Na verdade, é bem recente).

Eu me lembro de ler em algum lugar que os spammers não executar o Javascript no site.

Será que é verdade?E se assim for, então você poderia simplesmente verificar o javascript está sendo desativado e, em seguida, a figura é provável o que é spam?

Foi útil?

Solução

Há ainda um grande número de pessoas que trabalham com Javascript desativado.

Como alternativa, eu tive sucesso decente para parar de formulário de spam usando CSS.Basicamente, incluem um campo de entrada e o rótulo que está oculto usando CSS (display: none;) e uma vez enviada, verifique se nada foi digitado no campo.

Eu geralmente rótulo do campo como um filtro de spam com uma instrução não coloque nada no campo, mas todos os navegadores mais recentes corretamente ocultar o bloco.

o reCAPTCHA também é surpreendentemente fácil de implementar.

Outras dicas

seleção http://kahi.cz/wordpress/ravens-antispam-plugin/ para uma boa resposta

se coloca em

<noscript><p><label for="websiteurl99f">Please type "e73053": </label><input type="text" name="websiteurl99f" id="websiteurl99f" /></p></noscript>
        <script type="text/javascript">/* <![CDATA[ */ document.write('<div><input type="hidden" name="websiteurl99f" value="e' + '73053" \/><\/div>'); /* ]]> */</script>

assim, o javascript usuários não vê nada, não js usuários apenas digite uma palavra

se um spammer alvos especificamente, você não vai levar muito tempo para código rodada, mas para unidade de spam, o que deve ser bom

Na mesma linha, adicionando um campo fictício e, em seguida, utilizar CSS para ocultar é uma boa forma de enganar os bots.Se o campo for enviado, você sabe que um não-humanos provavelmente o preenchimento do formulário.

Especialmente eficaz se a marca/nome do campo algo ao longo das linhas de URL ou site.

Você poderia verificar - ter o JavaScript que preenche um campo de formulário oculto com um valor específico depois de a página é carregada.Então, quando a página envia de volta para o servidor, verifique que o campo de formulário oculto o valor esperado.Se ele não estiver lá, o que significa que o JavaScript não executar.

Para saber se você deve assumir que é o spam é outra história, e que não tem resposta certa, realmente.Você poderia simplesmente ter um <noscript> marca e ter que indicar ao usuário que sua apresentação não vai levar a menos que ativar o JavaScript.

Uma vez que você tem o JavaScript em execução, no entanto, os spammers só vai usar uma solução alternativa para isso.:)

Eu não consigo lembrar onde eu já vi esse método, mas de spam bots gosta de preencher formulários.Você já pensou em colocar um campo de formulário que está escondida com javascript (e diz que não preencher este campo se o usuário não tiver o JavaScript).Desta forma, se algo preenche este campo, você pode ignorá-la como spam.

Você teve alguma sorte com isso?Eu acho que alguns de texto, navegadores implementaram básicos de suporte a JavaScript, por isso, talvez spam bots bem?

Caso contrário, eu estou pensando em usar um captcha para usuários sem JavaScript, e alguns automático de verificação JavaScript para outros usuários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top