{"id":27444,"date":"2021-05-16T20:35:00","date_gmt":"2021-05-16T17:35:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27444"},"modified":"2021-10-18T04:11:52","modified_gmt":"2021-10-18T01:11:52","slug":"como-criar-honeypot-para-combate-com-formulario-de-spam-no-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-criar-honeypot-para-combate-com-formulario-de-spam-no-laravel\/","title":{"rendered":"Como Criar Honeypot para Combate com Formul\u00e1rio de Spam no Laravel"},"content":{"rendered":"<p>Assim que o seu site entrar no ar, em breve, voc\u00ea come\u00e7ar\u00e1 a receber spam dos formul\u00e1rios do seu site. Spambots escrevem um programa de computador que apenas preenche seu formul\u00e1rio com informa\u00e7\u00f5es falsas. \u00c9 uma dor de cabe\u00e7a para os propriet\u00e1rios de sites limpar esses dados indesejados e proteger seu banco de dados de tais registros desnecess\u00e1rios. Este artigo foi escrito para as pessoas que constru\u00edram seus aplicativos usando o Laravel. Vamos estudar como proteger seus formul\u00e1rios de spam no Laravel.<\/p>\n<p>O usu\u00e1rio pode adicionar reCAPTCHA em seu formul\u00e1rio, que testar\u00e1 se os valores do formul\u00e1rio s\u00e3o preenchidos por humanos ou n\u00e3o. Mas, ao fazer isso, seus usu\u00e1rios precisam resolver o quebra-cabe\u00e7a antes de enviar um formul\u00e1rio. Outra maneira \u00e9 adicionar a vers\u00e3o mais recente do Google reCAPTCHA. Mas ele exibir\u00e1 um \u00edcone reCAPTCHA no canto inferior direito do seu site.<\/p>\n<p>A maioria dos propriet\u00e1rios de sites n\u00e3o gosta dos captchas. E se voc\u00ea odeia captchas, ent\u00e3o mantenha um honeypot em suas formas que capturaria os spambots.<\/p>\n<p>Na maioria dos casos, os spambots s\u00e3o burros, podemos dizer que apenas preenchem todos os campos do formul\u00e1rio. Eles n\u00e3o sabem quais campos de formul\u00e1rio est\u00e3o realmente em uso para processos futuros. Podemos aproveitar este cen\u00e1rio e adicionar um campo de entrada fict\u00edcio (honeypot) ao nosso formul\u00e1rio. Este campo oculto deve permanecer vazio no momento do envio do formul\u00e1rio. Portanto, ao verificar no lado do servidor se este campo oculto est\u00e1 vazio, ser\u00e1 um envio de formul\u00e1rio v\u00e1lido e, se n\u00e3o estiver vazio, ser\u00e1 spam. Dito isso, vamos dar uma olhada em como criar honeypot e proteger formul\u00e1rios de sites contra spam.<\/p>\n<h3>Criar Honeypot e Prevenir Formul\u00e1rio de Spam<\/h3>\n<p>Como dissemos, usando um campo oculto, podemos enganar os spambots e impedir o envio do formul\u00e1rio no lado do servidor. Para isso, vamos usar o <a href=\"https:\/\/github.com\/spatie\/laravel-honeypot\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pacote laravel-honeypot<\/a>. Usando este pacote, um usu\u00e1rio pode proteger um ou mais formul\u00e1rios facilmente. Eles n\u00e3o precisam escrever c\u00f3digo do lado do servidor para cada formul\u00e1rio separadamente.<\/p>\n<p>Para a instala\u00e7\u00e3o do pacote, abra o terminal no diret\u00f3rio raiz do seu projeto e execute o comando:<\/p>\n<pre><code>composer require spatie\/laravel-honeypot<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o do pacote, publique o arquivo de configura\u00e7\u00e3o do pacote usando o comando:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"SpatieHoneypotHoneypotServiceProvider\" --tag=config<\/code><\/pre>\n<p>Este comando adicionar\u00e1 o <code>honeypot.php<\/code>arquivo ao <code>config<\/code>diret\u00f3rio. Voc\u00ea n\u00e3o precisa modificar o arquivo de configura\u00e7\u00e3o. Em vez disso, <code>.env<\/code>adicione no arquivo a constante mostrada abaixo.<\/p>\n<pre><code>HONEYPOT_NAME=honeypot_for_bots<\/code><\/pre>\n<p>Aqui, demos o nome &#8216;honeypot_for_bots&#8217;, que ser\u00e1 o nome do seu campo oculto. Voc\u00ea pode definir qualquer outro nome para esta constante.<\/p>\n<p>Em seguida, registre o middleware global que proteger\u00e1 todos os seus formul\u00e1rios de um \u00fanico lugar.<\/p>\n<p><strong>appHttpKernel.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u2026\n\u2026\nprotected $middleware = [\n\u00a0\u00a0\u00a0\/\/ ...\n\u00a0\u00a0\u00a0SpatieHoneypotProtectAgainstSpam::class,\n];<\/code><\/pre>\n<p>Tudo feito! Agora v\u00e1 para o seu formul\u00e1rio e adicione o honeypot a ele adicionando <code>@honeypot<\/code>no formul\u00e1rio HTML. Seu arquivo blade ter\u00e1 a seguinte apar\u00eancia.<\/p>\n<pre><code>&lt;form action=\"\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0@honeypot\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"fullname\" placeholder=\"Full Name\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n&lt;\/form&gt;<\/code><\/pre>\n<p>Agora, se os spambots estiverem tentando enviar spam em seu formul\u00e1rio, o pacote descartar\u00e1 a solicita\u00e7\u00e3o. Como resultado, nenhum spam mais ir\u00e1 parar em seu banco de dados.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/um-guia-para-adicionar-o-google-recaptcha-v3-ao-seu-site-laravel\/\" title=\"Um guia para adicionar o Google reCAPTCHA v3 ao seu site Laravel\">Um guia para adicionar o Google reCAPTCHA v3 ao seu site Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-eventos-e-ouvintes-do-laravel-em-seu-aplicativo\/\" title=\"Como usar eventos e ouvintes do Laravel em seu aplicativo\">Como usar eventos e ouvintes do Laravel em seu aplicativo<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, estudamos como adicionar honeypot no Laravel e proteger seu formul\u00e1rio de spam. Honeypot nada mais \u00e9 do que um campo fict\u00edcio no formul\u00e1rio que usa para<\/p>\n","protected":false},"author":1,"featured_media":21671,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[502],"tags":[848],"class_list":["post-27444","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27444"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27444\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21671"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}