{"id":27855,"date":"2021-05-16T19:53:00","date_gmt":"2021-05-16T16:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27855"},"modified":"2021-10-17T17:03:10","modified_gmt":"2021-10-17T14:03:10","slug":"como-crear-honeypot-para-combatir-el-spam-de-formularios-en-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-crear-honeypot-para-combatir-el-spam-de-formularios-en-laravel\/","title":{"rendered":"C\u00f3mo crear Honeypot para combatir el spam de formularios en Laravel"},"content":{"rendered":"<p>Una vez que su sitio web entre en funcionamiento muy pronto, comenzar\u00e1 a recibir spam de los formularios de su sitio web. Los spambots escriben un programa de computadora que simplemente completa su formulario con informaci\u00f3n falsa. Es un dolor de cabeza para los propietarios de sitios limpiar estos datos no deseados y proteger su base de datos de esos registros innecesarios. Este art\u00edculo est\u00e1 escrito para las personas que crearon su aplicaci\u00f3n usando Laravel. Estudiaremos c\u00f3mo se pueden proteger sus formularios del spam en Laravel.<\/p>\n<p>El usuario puede agregar reCAPTCHA en su formulario que probar\u00e1 si los valores del formulario son llenados por humanos o no. Pero al hacerlo, sus usuarios deben resolver el rompecabezas antes de enviar un formulario. Otra forma es agregando la \u00faltima versi\u00f3n de Google reCAPTCHA. Pero mostrar\u00e1 un icono de reCAPTCHA en la esquina inferior derecha de su sitio web.<\/p>\n<p>A la mayor\u00eda de los propietarios de sitios no les gustan los captchas. Y si odias los captchas, mant\u00e9n un honeypot en tus formularios que atrapar\u00eda a los spambots.<\/p>\n<p>En su mayor\u00eda, los spambots son tontos, podemos decir, ya que simplemente llenan todos los campos de su formulario. No saben qu\u00e9 campos de formulario est\u00e1n realmente en uso para procesos posteriores. Podemos aprovechar este escenario y agregar un campo de entrada ficticio (honeypot) a nuestro formulario. Este campo oculto debe permanecer vac\u00edo en el momento de enviar el formulario. Entonces, mientras verifica en el lado del servidor si este campo oculto est\u00e1 vac\u00edo, ser\u00e1 un env\u00edo de formulario v\u00e1lido y, si no est\u00e1 vac\u00edo, ser\u00e1 spam. Habiendo dicho eso, echemos un vistazo a c\u00f3mo crear honeypot y proteger los formularios de sitios web del spam.<\/p>\n<h3>Cree Honeypot y evite el correo no deseado<\/h3>\n<p>Como dijimos, usando un campo oculto podemos enga\u00f1ar a los spambots y detener el env\u00edo de formularios en el lado del servidor. Para este prop\u00f3sito, <a href=\"https:\/\/github.com\/spatie\/laravel-honeypot\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">usaremos el paquete laravel-honeypot<\/a>. Con este paquete, un usuario puede proteger uno o m\u00e1s formularios f\u00e1cilmente. No necesitan escribir c\u00f3digo del lado del servidor para cada formulario por separado.<\/p>\n<p>Para la instalaci\u00f3n del paquete, abra la terminal en el directorio ra\u00edz de su proyecto y ejecute el comando:<\/p>\n<pre><code>composer require spatie\/laravel-honeypot<\/code><\/pre>\n<p>Tras la instalaci\u00f3n del paquete, publique el archivo de configuraci\u00f3n del paquete con el comando:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"SpatieHoneypotHoneypotServiceProvider\" --tag=config<\/code><\/pre>\n<p>Este comando agregar\u00e1 un <code>honeypot.php<\/code>archivo en el <code>config<\/code>directorio. No es necesario modificar el archivo de configuraci\u00f3n. En su lugar, <code>.env<\/code>agregue en el archivo la constante que se muestra a continuaci\u00f3n.<\/p>\n<pre><code>HONEYPOT_NAME=honeypot_for_bots<\/code><\/pre>\n<p>Aqu\u00ed le dimos el nombre &#8216;honeypot_for_bots&#8217; que ser\u00e1 el nombre de su campo oculto. Puede establecer cualquier otro nombre para esta constante.<\/p>\n<p>A continuaci\u00f3n, registre el middleware global que proteger\u00e1 todos sus formularios desde un solo 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>\u00a1Todo listo! Ahora vaya a su formulario y agregue el honeypot agregando <code>@honeypot<\/code>en el formulario HTML. Su archivo blade se ver\u00e1 m\u00e1s abajo.<\/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>Ahora, si los spambots intentan enviar spam en su formulario, el paquete descartar\u00e1 la solicitud. Como resultado, no terminar\u00e1 m\u00e1s spam en su base de datos.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/una-guia-para-agregar-google-recaptcha-v3-a-su-sitio-web-de-laravel\/\" title=\"Una gu\u00eda para agregar Google reCAPTCHA v3 a su sitio web de Laravel\">Una gu\u00eda para agregar Google reCAPTCHA v3 a su sitio web de Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-usar-eventos-y-oyentes-de-laravel-en-su-aplicacion\/\" title=\"C\u00f3mo usar eventos y oyentes de Laravel en su aplicaci\u00f3n\">C\u00f3mo usar eventos y oyentes de Laravel en su aplicaci\u00f3n<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, estudiamos c\u00f3mo agregar honeypot en Laravel y proteger su formulario del spam. Honeypot no es m\u00e1s que un campo ficticio en la forma que se 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":[495],"tags":[849],"class_list":["post-27855","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27855"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27855\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21671"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}