Como combater spam nos comentários do WordPress com Google reCaptcha – Tatiane Pires
Como combater spam nos comentários do WordPress com Google reCaptcha
"Nenhum spam em sua caixa até o momento" é uma frase mágica quando se trata da moderação de comentários em um blog WordPress.
O plugin Akismet oferece alguma proteção contra spam, entretanto nunca foi tão eficiente quanto eu gostaria. Embora eu tenha ativado a opção "Silenciosamente descarte os piores e mais difundidos spams sem que eu os veja", sempre havia spams que eu considerava ridiculamente óbvios na fila de moderação.
Comecei a procurar por maneiras de adicionar o Google reCaptcha aos comentários do blog depois de observar que não recebia mais spam por meio do formulário de contato do blog, isso aconteceu depois de inserir o reCaptcha. Eu sei que há plugins para isso, mas eu preferi o desafio de encontrar a solução.
O mu-plugin resultado desse desafio está disponível neste repositório no Github: WP Google reCaptcha for comments.
Essa solução funciona contra os bots de spam, pois verifica a resposta do captcha após o envio do formulário de comentário, e conta com a eficiência do Google reCaptcha, que tem se mostrado confiável. Desde 11 de janeiro, quando eliminei os últimos spams da fila de moderação, o painel do blog se mantém com a mensagem que destaquei na imagem acima: nenhum spam.
Os arquivos devem ser colocados na pasta wp-content/mu-plugins e as linhas abaixo devem ser inseridas no arquivo .htaccess.
É essa RewriteRule que vai redirecionar o processamento do comentário para o arquivo do mu-plugin, tps-google-recatpcha/wp-comments-post.php em vez do arquivo /wp-comments-post.php localizado no diretório raiz da instalação do WordPress.
O mu-plugin insere o reCaptcha no formulário de comentários dos posts e verifica a resposta após o envio, por isso os bots não podem impedir a validação, que é processada pelo servidor utilizando PHP. Soluções que dependem de JavaScript para essa validação não são eficazes contra bots, pois o processamento de JavaScript pode ser desabilitado nos navegadores e também porque bots não usam navegadores.
Quando um comentário é enviado sem uma resposta válida para o reCaptcha, o mu-plugin redireciona de volta para a URL do post sem permitir que o WordPress inicie o processamento do comentário que ocorre a partir da função wp_handle_comment_submission(). Por outro lado, quando o captcha é solucionado corretamente, o mu-plugin entrega o processamento do comentário para o fluxo normal do WordPress.
O reCaptcha não é inserido quando uma pessoa estiver logada no site. E o mu-plugin inclui uma validação por meio do jQuery Validate para evitar que pessoas não logadas enviem um comentário sem responder o reCaptcha.