Segurança e SSL

Configurar o reCAPTCHA no PrestaShop 1.6 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 típico 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.

O PrestaShop 1.6 já não recebe atualizações de segurança. O CAPTCHA trava os registos e envios automáticos por formulário, mas não protege das vulnerabilidades da versão. Use-o para cortar já o spam e planeie a atualização da loja.

Para proteger a loja, vamos utilizar o módulo gratuito eicaptcha, que integra o reCAPTCHA da Google nos formulários do PrestaShop.

Descarregar e instalar o módulo

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

O módulo tem dois ramos: o 2.x é para o PrestaShop 1.7 e 8, e o 0.4.x é para o PrestaShop 1.6 (na descrição aparece «PS version under 1.7»). Para o PrestaShop 1.6, a última versão é a 0.4.17; descarregue o ficheiro eicaptcha.zip dessa versão. Se instalar uma versão 2.x no 1.6, não funcionará.

Versão do eicaptcha para o PrestaShop 1.6 no GitHub

Instale o módulo como qualquer outro: no painel de administração do PrestaShop, entre em Modules and Services, clique em Add a new module e carregue o zip descarregado.

Carregar o módulo a partir de Modules and Services

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

Se não tiver sido ativado ao instalá-lo, procure-o no catálogo de módulos e clique em Install ou Enable:

Ativar o eicaptcha no catálogo de módulos

No fim, abre-se a configuração do módulo, que pede as chaves do reCAPTCHA. Obtemo-las 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, marque Desafio (v2) e depois Caixa de verificação «Não sou um robô». A versão 0.4.x do módulo só suporta o reCAPTCHA v2: chaves v3 não funcionarão.
  • 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-á duas chaves: 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 no PrestaShop e preencha:

  • Public key: a chave do site.
  • Private key: a chave secreta.
  • Ative o captcha nos formulários que pretende proteger, no mínimo na criação de conta e no formulário de contacto.
  • Indique o código do idioma do captcha, por exemplo pt-PT.

Configuração do eicaptcha com as chaves

Guarde as alterações. A partir desse momento, os formulários mostrarão a caixa «Não sou um robô»:

Formulário 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.
  2. Tente registar-se sem marcar a caixa: o PrestaShop deve mostrar um erro e não criar a conta.
  3. Marque a caixa e conclua o registo: a conta deve ser criada normalmente.

Se a caixa não aparecer, esvazie a cache do PrestaShop em Advanced Parameters > Performance e verifique se o tema não tem um modelo de registo ou de contacto modificado que omita o hook do módulo. 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. Verifique a versão exata em Advanced Parameters > Information: a última do ramo 1.6 é a 1.6.1.24, que corrige a falha de registo massivo que estes bots usavam. Se a sua loja tiver uma versão anterior, faça uma cópia e atualize-a para a 1.6.1.24 enquanto prepara a passagem para uma versão com suporte.

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.