Segurança e SSL
Configurar o reCAPTCHA no PrestaShop 1.7 e 8 com o eicaptcha
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.

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

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:

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:

- 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, comowww.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.

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.

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

Verificar que funciona
- 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).
- Com v2, tente registar-se sem marcar a caixa: o PrestaShop deve mostrar um erro e não criar a conta.
- 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
- Travar o spam enviado a partir de formulários do PrestaShop Explica como confirmar se as devoluções provêm de um formulário do PrestaShop e como conter o abuso...
- Aviso histórico sobre registos massivos no PrestaShop 1.6 e 1.7 Documenta a falha corrigida no PrestaShop 1.6.1.24 e 1.7.5.2 e explica como agir se ainda encontrar...
- Identificar e travar o abuso dos formulários de um site Explica como identificar se as devoluções provêm de um formulário abusado e como protegê-lo com vali...
- Travar o spam nos comentários do WordPress com Akismet e reCAPTCHA Explica como combinar moderação, Akismet e reCAPTCHA para travar comentários automáticos e como loca...
Algo não bate certo ou mudou? Diga-nos e revemos.