✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak stworzyć Honeypota do walki ze spamem formularzy w Laravel?

100

Gdy Twoja witryna zostanie wkrótce uruchomiona, zaczniesz otrzymywać spam z formularzy witryny. Spamboty piszą program komputerowy, który po prostu wypełnia formularz fałszywymi informacjami. Wyczyszczenie tych niechcianych danych i ochrona bazy danych przed takimi niepotrzebnymi zapisami to ból głowy dla właścicieli witryn. Ten artykuł jest przeznaczony dla osób, które zbudowały swoją aplikację przy użyciu Laravela. Dowiemy się, jak można chronić ich formularze przed spamem w Laravel.

Użytkownik może dodać reCAPTCHA do swojego formularza, który sprawdzi, czy wartości formularza są wypełnione przez ludzi, czy nie. Ale robiąc to, Twoi użytkownicy muszą rozwiązać zagadkę przed przesłaniem formularza. Innym sposobem jest dodanie najnowszej wersji Google reCAPTCHA. Ale wyświetli ikonę reCAPTCHA w prawym dolnym rogu Twojej witryny.

Większość właścicieli witryn nie lubi captcha. A jeśli nienawidzisz captcha, trzymaj w swoich formularzach honeypot, który uwięziłby spamboty.

Można powiedzieć, że w większości spamboty są głupie, ponieważ po prostu wypełniają wszystkie pola formularza. Nie wiedzą, które pola formularza są aktualnie używane do dalszego przetwarzania. Możemy skorzystać z tego scenariusza i dodać do naszego formularza atrapę pola wejściowego (honeypot). To ukryte pole powinno pozostać puste w momencie przesyłania formularza. Więc podczas sprawdzania po stronie serwera, czy to ukryte pole jest puste, będzie to prawidłowe przesłanie formularza, a jeśli nie jest puste, będzie to spam. Powiedziawszy to, przyjrzyjmy się, jak stworzyć honeypot i chronić formularze stron internetowych przed spamem.

Twórz Honeypot i chroń formularz przed spamem

Jak powiedzieliśmy, używając ukrytego pola, możemy oszukać roboty spamujące i zatrzymać przesyłanie formularzy po stronie serwera. W tym celu wykorzystamy pakiet laravel-honeypot. Korzystając z tego pakietu, użytkownik może łatwo chronić jeden lub więcej formularzy. Nie muszą pisać kodu po stronie serwera dla każdego formularza osobno.

Aby zainstalować pakiet, otwórz terminal w katalogu głównym projektu i uruchom polecenie:

composer require spatie/laravel-honeypot

Po zainstalowaniu pakietu opublikuj plik konfiguracyjny pakietu za pomocą polecenia:

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

To polecenie doda honeypot.phpplik w configkatalogu. Nie musisz modyfikować pliku konfiguracyjnego. Zamiast tego w .envpliku dodaj stałą pokazaną poniżej.

HONEYPOT_NAME=honeypot_for_bots

Tutaj podaliśmy nazwę „honeypot_for_bots", która będzie nazwą twojego ukrytego pola. Możesz ustawić dowolną inną nazwę dla tej stałej.

Następnie zarejestruj globalne oprogramowanie pośredniczące, które ochroni wszystkie Twoje formularze z jednego miejsca.

appHttpKernel.php

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

Wszystko gotowe! Teraz przejdź do swojego formularza i dodaj do niego honeypot dodając @honeypotw formularzu HTML. Twój pilnik będzie wyglądał mniej więcej tak, jak poniżej.

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

Teraz, jeśli spamboty próbują wysłać spam w Twoim formularzu, pakiet odrzuci żądanie. Dzięki temu w Twojej bazie danych nie znajdzie się więcej spamu.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów