✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como Criar Honeypot para Combate com Formulário de Spam no Laravel

99

Assim que o seu site entrar no ar, em breve, você começará a receber spam dos formulários do seu site. Spambots escrevem um programa de computador que apenas preenche seu formulário com informações falsas. É uma dor de cabeça para os proprietários de sites limpar esses dados indesejados e proteger seu banco de dados de tais registros desnecessários. Este artigo foi escrito para as pessoas que construíram seus aplicativos usando o Laravel. Vamos estudar como proteger seus formulários de spam no Laravel.

O usuário pode adicionar reCAPTCHA em seu formulário, que testará se os valores do formulário são preenchidos por humanos ou não. Mas, ao fazer isso, seus usuários precisam resolver o quebra-cabeça antes de enviar um formulário. Outra maneira é adicionar a versão mais recente do Google reCAPTCHA. Mas ele exibirá um ícone reCAPTCHA no canto inferior direito do seu site.

A maioria dos proprietários de sites não gosta dos captchas. E se você odeia captchas, então mantenha um honeypot em suas formas que capturaria os spambots.

Na maioria dos casos, os spambots são burros, podemos dizer que apenas preenchem todos os campos do formulário. Eles não sabem quais campos de formulário estão realmente em uso para processos futuros. Podemos aproveitar este cenário e adicionar um campo de entrada fictício (honeypot) ao nosso formulário. Este campo oculto deve permanecer vazio no momento do envio do formulário. Portanto, ao verificar no lado do servidor se este campo oculto está vazio, será um envio de formulário válido e, se não estiver vazio, será spam. Dito isso, vamos dar uma olhada em como criar honeypot e proteger formulários de sites contra spam.

Criar Honeypot e Prevenir Formulário de Spam

Como dissemos, usando um campo oculto, podemos enganar os spambots e impedir o envio do formulário no lado do servidor. Para isso, vamos usar o pacote laravel-honeypot. Usando este pacote, um usuário pode proteger um ou mais formulários facilmente. Eles não precisam escrever código do lado do servidor para cada formulário separadamente.

Para a instalação do pacote, abra o terminal no diretório raiz do seu projeto e execute o comando:

composer require spatie/laravel-honeypot

Após a instalação do pacote, publique o arquivo de configuração do pacote usando o comando:

php artisan vendor:publish --provider="SpatieHoneypotHoneypotServiceProvider" --tag=config

Este comando adicionará o honeypot.phparquivo ao configdiretório. Você não precisa modificar o arquivo de configuração. Em vez disso, .envadicione no arquivo a constante mostrada abaixo.

HONEYPOT_NAME=honeypot_for_bots

Aqui, demos o nome ‘honeypot_for_bots’, que será o nome do seu campo oculto. Você pode definir qualquer outro nome para esta constante.

Em seguida, registre o middleware global que protegerá todos os seus formulários de um único lugar.

appHttpKernel.php

<?php
…
…
protected $middleware = [
   // ...
   SpatieHoneypotProtectAgainstSpam::class,
];

Tudo feito! Agora vá para o seu formulário e adicione o honeypot a ele adicionando @honeypotno formulário HTML. Seu arquivo blade terá a seguinte aparência.

<form action="" method="post">
    @honeypot
    <input type="text" name="fullname" placeholder="Full Name" />
    <input type="submit" name="submit" value="Submit" />
    {{ csrf_field() }}
</form>

Agora, se os spambots estiverem tentando enviar spam em seu formulário, o pacote descartará a solicitação. Como resultado, nenhum spam mais irá parar em seu banco de dados.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação