Segurança e SSL

Configurar o reCAPTCHA no PrestaShop 1.7 e 8 com o eicaptcha

Revisto a 7 min de leitura CAPTCHA spam PrestaShop

Os sistemas de CAPTCHA são a forma mais direta de travar o spam: o teste que verifica que quem preenche o formulário é uma pessoa e não um robô. No PrestaShop são especialmente necessários, porque as lojas são alvo habitual de bots que criam centenas de contas falsas por dia e enviam formulários de contacto em massa.

O problema não é só ter de apagar essas contas. Os bots consomem CPU e memória da loja, e cada registo falso faz com que o PrestaShop envie um e-mail de boas-vindas para endereços inexistentes do Gmail, Hotmail e semelhantes. Esses fornecedores rejeitam as mensagens e acabam por considerar suspeito o domínio da loja, pelo que os seus e-mails legítimos começam a chegar à pasta de spam dos seus clientes.

Para proteger a loja, vamos utilizar o módulo gratuito eicaptcha, que integra o reCAPTCHA da Google no registo de clientes, no formulário de contacto e na subscrição da newsletter. Serve para o PrestaShop 1.7 e 8. Se a sua loja for 1.6, siga o guia do reCAPTCHA no PrestaShop 1.6.

Descarregar e instalar o módulo

Descarregue o módulo a partir da sua página oficial no GitHub:

Descarregue o ficheiro eicaptcha.zip da última versão 2.x (hoje a 2.6.0), na secção Assets. Não use as ligações «Source code»: esse zip não inclui as bibliotecas de que o módulo precisa e não funcionará. As versões 0.4.x são as do PrestaShop 1.6.

eicaptcha.zip na página de versões do GitHub

No painel do PrestaShop, entre em Modules > Module Catalog (no PrestaShop 8, Modules > Module Manager), clique em Upload a module e arraste o zip:

Botão para carregar um módulo no PrestaShop 1.7

Também pode descompactar o zip e carregar a pasta eicaptcha por FTP ou a partir do gestor de ficheiros do cPanel para a pasta modules do PrestaShop.

Se não tiver sido ativado ao instalá-lo, procure-o por «captcha» e clique em Enable:

Ativar o Ei Captcha no catálogo de módulos

Depois clique em Configure. O módulo pede as chaves do reCAPTCHA, que obtemos no passo seguinte.

Obter as chaves do reCAPTCHA

Entre na consola de administração do reCAPTCHA com uma conta Google (serve qualquer conta do Gmail) e registe um novo site:

Formulário de registo de um site no reCAPTCHA

  • Em Etiqueta, escreva um nome que lhe permita reconhecê-lo, por exemplo o domínio da loja.
  • Em Tipo de reCAPTCHA, escolha uma das duas:
    • Desafio (v2) > Caixa de verificação «Não sou um robô»: mostra a caixa de sempre. É a mais fácil de verificar.
    • Baseado em pontuação (v3): invisível para o cliente; aparece apenas um pequeno logótipo do reCAPTCHA no canto inferior direito.
  • Em Domínios, adicione o domínio da loja, por exemplo tutienda.com. O reCAPTCHA aceita também os seus subdomínios, como www.tutienda.com.

Aceite os termos e clique em Enviar. A Google mostrar-lhe-á a chave do site e a chave secreta. Copie-as e anote qual é qual.

Chave do site e chave secreta do reCAPTCHA

A interface da Google mudou de aspeto desde estas capturas, mas os campos são os mesmos.

Configurar o módulo

Volte à configuração do eicaptcha e preencha:

  • Recaptcha Version: a mesma que escolheu na Google (V2 ou V3). Se não coincidirem, o captcha não funcionará.
  • Captcha public key (Site key): a chave do site.
  • Captcha private key (Secret key): a chave secreta.
  • Ative o captcha em contact form (contacto) e account creation (registo), e na newsletter se a usar.
  • Force Captcha language: pt-PT.
  • Com V3, Captcha V3 minimum score define a pontuação mínima para considerar que se trata de uma pessoa. Deixe o 0.5 que vem por predefinição e baixe-o para 0.3 apenas se clientes reais não conseguirem registar-se.

Configuração do eicaptcha com as chaves

Guarde as alterações. Com chaves v2, os formulários mostrarão a caixa «Não sou um robô»:

Formulário de contacto do PrestaShop protegido com reCAPTCHA

Verificar que funciona

  1. Abra a loja numa janela privada e entre no registo de clientes e na página de contacto: deve aparecer a caixa do reCAPTCHA (ou o logótipo no canto, com v3).
  2. Com v2, tente registar-se sem marcar a caixa: o PrestaShop deve mostrar um erro e não criar a conta.
  3. Conclua o registo de forma normal: a conta deve ser criada.

Se o captcha não aparecer ou não bloquear nada:

  • Esvazie a cache em Advanced Parameters > Performance.
  • Nessa mesma página, verifique se Disable all overrides está em No. O eicaptcha apoia-se num override do registo de clientes e, se estiverem desativados, não valida o formulário.
  • No separador Advanced parameters do módulo, clique em Check if module is well installed e volte a esse separador: indica o que falha (overrides, hooks, módulo de contacto). Aí também pode ativar Enable Debug para que guarde um registo.
  • Se aparecer o erro «Invalid domain for site key», o domínio da loja não coincide com o registado no reCAPTCHA.

Se continuarem a entrar contas falsas

Se, depois de ativar o captcha, continuarem a aparecer registos falsos, os bots não estão a passar pelo formulário: aproveitam uma falha da versão instalada, como a falha de registo massivo. Verifique a versão em Advanced Parameters > Information e atualize a loja; se for uma 1.7, o recomendável é passar para a 8 ou a 9.

As contas falsas costumam reconhecer-se porque o nome ou o apelido contêm ligações ou texto publicitário. Antes de as apagar em Customers > Customers, filtre por data de registo e verifique que não têm encomendas.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.