{"id":27844,"date":"2021-05-16T20:41:00","date_gmt":"2021-05-16T17:41:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27844"},"modified":"2021-10-18T03:44:32","modified_gmt":"2021-10-18T00:44:32","slug":"jak-stworzyc-honeypota-do-walki-ze-spamem-formularzy-w-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-stworzyc-honeypota-do-walki-ze-spamem-formularzy-w-laravel\/","title":{"rendered":"Jak stworzy\u0107 Honeypota do walki ze spamem formularzy w Laravel?"},"content":{"rendered":"<p>Gdy Twoja witryna zostanie wkr\u00f3tce uruchomiona, zaczniesz otrzymywa\u0107 spam z formularzy witryny. Spamboty pisz\u0105 program komputerowy, kt\u00f3ry po prostu wype\u0142nia formularz fa\u0142szywymi informacjami. Wyczyszczenie tych niechcianych danych i ochrona bazy danych przed takimi niepotrzebnymi zapisami to b\u00f3l g\u0142owy dla w\u0142a\u015bcicieli witryn. Ten artyku\u0142 jest przeznaczony dla os\u00f3b, kt\u00f3re zbudowa\u0142y swoj\u0105 aplikacj\u0119 przy u\u017cyciu Laravela. Dowiemy si\u0119, jak mo\u017cna chroni\u0107 ich formularze przed spamem w Laravel.<\/p>\n<p>U\u017cytkownik mo\u017ce doda\u0107 reCAPTCHA do swojego formularza, kt\u00f3ry sprawdzi, czy warto\u015bci formularza s\u0105 wype\u0142nione przez ludzi, czy nie. Ale robi\u0105c to, Twoi u\u017cytkownicy musz\u0105 rozwi\u0105za\u0107 zagadk\u0119 przed przes\u0142aniem formularza. Innym sposobem jest dodanie najnowszej wersji Google reCAPTCHA. Ale wy\u015bwietli ikon\u0119 reCAPTCHA w prawym dolnym rogu Twojej witryny.<\/p>\n<p>Wi\u0119kszo\u015b\u0107 w\u0142a\u015bcicieli witryn nie lubi captcha. A je\u015bli nienawidzisz captcha, trzymaj w swoich formularzach honeypot, kt\u00f3ry uwi\u0119zi\u0142by spamboty.<\/p>\n<p>Mo\u017cna powiedzie\u0107, \u017ce w wi\u0119kszo\u015bci spamboty s\u0105 g\u0142upie, poniewa\u017c po prostu wype\u0142niaj\u0105 wszystkie pola formularza. Nie wiedz\u0105, kt\u00f3re pola formularza s\u0105 aktualnie u\u017cywane do dalszego przetwarzania. Mo\u017cemy skorzysta\u0107 z tego scenariusza i doda\u0107 do naszego formularza atrap\u0119 pola wej\u015bciowego (honeypot). To ukryte pole powinno pozosta\u0107 puste w momencie przesy\u0142ania formularza. Wi\u0119c podczas sprawdzania po stronie serwera, czy to ukryte pole jest puste, b\u0119dzie to prawid\u0142owe przes\u0142anie formularza, a je\u015bli nie jest puste, b\u0119dzie to spam. Powiedziawszy to, przyjrzyjmy si\u0119, jak stworzy\u0107 honeypot i chroni\u0107 formularze stron internetowych przed spamem.<\/p>\n<h3>Tw\u00f3rz Honeypot i chro\u0144 formularz przed spamem<\/h3>\n<p>Jak powiedzieli\u015bmy, u\u017cywaj\u0105c ukrytego pola, mo\u017cemy oszuka\u0107 roboty spamuj\u0105ce i zatrzyma\u0107 przesy\u0142anie formularzy po stronie serwera. W tym celu wykorzystamy <a href=\"https:\/\/github.com\/spatie\/laravel-honeypot\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pakiet laravel-honeypot<\/a>. Korzystaj\u0105c z tego pakietu, u\u017cytkownik mo\u017ce \u0142atwo chroni\u0107 jeden lub wi\u0119cej formularzy. Nie musz\u0105 pisa\u0107 kodu po stronie serwera dla ka\u017cdego formularza osobno.<\/p>\n<p>Aby zainstalowa\u0107 pakiet, otw\u00f3rz terminal w katalogu g\u0142\u00f3wnym projektu i uruchom polecenie:<\/p>\n<pre><code>composer require spatie\/laravel-honeypot<\/code><\/pre>\n<p>Po zainstalowaniu pakietu opublikuj plik konfiguracyjny pakietu za pomoc\u0105 polecenia:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"SpatieHoneypotHoneypotServiceProvider\" --tag=config<\/code><\/pre>\n<p>To polecenie doda <code>honeypot.php<\/code>plik w <code>config<\/code>katalogu. Nie musisz modyfikowa\u0107 pliku konfiguracyjnego. Zamiast tego w <code>.env<\/code>pliku dodaj sta\u0142\u0105 pokazan\u0105 poni\u017cej.<\/p>\n<pre><code>HONEYPOT_NAME=honeypot_for_bots<\/code><\/pre>\n<p>Tutaj podali\u015bmy nazw\u0119 \u201ehoneypot_for_bots&quot;, kt\u00f3ra b\u0119dzie nazw\u0105 twojego ukrytego pola. Mo\u017cesz ustawi\u0107 dowoln\u0105 inn\u0105 nazw\u0119 dla tej sta\u0142ej.<\/p>\n<p>Nast\u0119pnie zarejestruj globalne oprogramowanie po\u015brednicz\u0105ce, kt\u00f3re ochroni wszystkie Twoje formularze z jednego miejsca.<\/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>Wszystko gotowe! Teraz przejd\u017a do swojego formularza i dodaj do niego honeypot dodaj\u0105c <code>@honeypot<\/code>w formularzu HTML. Tw\u00f3j pilnik b\u0119dzie wygl\u0105da\u0142 mniej wi\u0119cej tak, jak poni\u017cej.<\/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>Teraz, je\u015bli spamboty pr\u00f3buj\u0105 wys\u0142a\u0107 spam w Twoim formularzu, pakiet odrzuci \u017c\u0105danie. Dzi\u0119ki temu w Twojej bazie danych nie znajdzie si\u0119 wi\u0119cej spamu.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przewodnik-po-dodaniu-google-recaptcha-v3-do-twojej-witryny-laravel\/\" title=\"Przewodnik po dodaniu Google reCAPTCHA v3 do Twojej witryny Laravel\">Przewodnik po dodaniu Google reCAPTCHA v3 do Twojej witryny Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-uzywac-zdarzen-i-nasluchiwaczy-laravel-w-swojej-aplikacji\/\" title=\"Jak u\u017cywa\u0107 zdarze\u0144 i nas\u0142uchiwaczy Laravel w swojej aplikacji?\">Jak u\u017cywa\u0107 zdarze\u0144 i nas\u0142uchiwaczy Laravel w swojej aplikacji?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule dowiemy si\u0119, jak doda\u0107 honeypot w Laravelu i chroni\u0107 sw\u00f3j formularz przed spamem. Honeypot to nic innego jak atrapa pola w postaci, w kt\u00f3rej u\u017cywamy for<\/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":[501],"tags":[847],"class_list":["post-27844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=27844"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27844\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21671"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}