Base de conhecimento

Como proteger seu site contra spam em formulários

Como proteger seu site contra spam em formulários

Formulários de contato sem proteção são explorados por robôs para enviar spam em massa — prejudicando a reputação do seu e-mail e sobrecarregando o servidor.

Sinais de que seu formulário está sendo abusado

  • ⚠️ Recebe dezenas de e-mails de contato por dia
  • ⚠️ E-mails com conteúdo sem sentido ou em outros idiomas
  • ⚠️ Seu domínio entrou em blacklist de spam
  • ⚠️ Servidor bloqueou o envio de e-mails

1. Instale o reCAPTCHA do Google

O reCAPTCHA v3 é invisível para o usuário mas bloqueia robôs eficientemente.

Como configurar:

  1. Acesse google.com/recaptcha
  2. Clique em Admin Console
  3. Registre seu site e obtenha as chaves
  4. Adicione o reCAPTCHA ao seu formulário

WordPress — plugin Contact Form 7:

  1. Instale o plugin Contact Form 7
  2. Instale o addon Contact Form 7 – reCAPTCHA
  3. Configure as chaves do Google
  4. Adicione a tag [recaptcha] ao formulário

2. Adicione um campo honeypot

O honeypot é um campo invisível para humanos mas que robôs preenchem:

<!-- Campo honeypot - oculto com CSS -->
<input type="text" name="website" style="display:none" tabindex="-1" autocomplete="off">

No PHP verifique:

if (!empty($_POST['website'])) {
    die('Spam detectado');
}

3. Valide o formulário no servidor

Nunca confie apenas na validação do frontend:

// Verifica se o e-mail é válido
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    die('E-mail inválido');
}

// Limita o tamanho da mensagem
if (strlen($_POST['mensagem']) > 2000) {
    die('Mensagem muito longa');
}

4. Implemente rate limiting

Limite o número de envios por IP em um período:

session_start();
$limite = 3;
$periodo = 3600; // 1 hora

if (!isset($_SESSION['form_count'])) {
    $_SESSION['form_count'] = 0;
    $_SESSION['form_time'] = time();
}

if (time() - $_SESSION['form_time'] > $periodo) {
    $_SESSION['form_count'] = 0;
    $_SESSION['form_time'] = time();
}

if ($_SESSION['form_count'] >= $limite) {
    die('Muitas tentativas. Aguarde uma hora.');
}

$_SESSION['form_count']++;

5. Use o Akismet no WordPress

O Akismet filtra spam automaticamente em comentários e formulários:

  1. Instale o plugin Akismet Anti-Spam
  2. Crie uma conta em akismet.com
  3. Obtenha a chave API gratuita
  4. Configure no plugin

Links úteis

Ainda com problemas?

Abra um ticket em nossa área do cliente informando o domínio e a quantidade de spam recebida.

Avalie este artigo para nos ajudar a melhorar nossa Base de Conhecimento.

0 0