Como combater spam nos comentários do WordPress com Google reCaptcha

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.

Como instalar

Os arquivos devem ser colocados na pasta wp-content/mu-plugins e as linhas abaixo devem ser inseridas no arquivo .htaccess.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-comments-post\.php$ wp-content/mu-plugins/tps-google-recatpcha/wp-comments-post.php [NC,L]
</IfModule>

É 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.

Como funciona

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.

Download do arquivo zip: wp-google-recaptcha-for-comments.zip
2017-02-03T00:26:41+00:00 fevereiro 2017|Desenvolvimento Web|

Deixar Um Comentário