...
✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як створити Honeypot для боротьби зі спамом у Laravel

20

Як тільки ваш веб-сайт почне працювати дуже скоро, ви почнете отримувати спам з веб-форм. Спам-боти пишуть комп’ютерну програму, яка просто заповнює вашу форму фальшивою інформацією. Власники сайтів болять головним болем очищати ці небажані дані та захищати вашу базу даних від таких непотрібних записів. Ця стаття написана для людей, які створили свій додаток за допомогою Laravel. Ми вивчимо, як можна захистити їхні форми від спаму в Laravel.

Користувач може додати reCAPTCHA у свою форму, яка перевірить, заповнені люди значеннями чи ні. Але, роблячи це, ваші користувачі повинні розгадати загадку перед тим, як подавати форму. Інший спосіб – додати останню версію Google reCAPTCHA. Але він відображатиме піктограму reCAPTCHA в нижньому правому куті вашого веб-сайту.

Більшість власників сайтів не люблять капчі. А якщо ви ненавидите капчу, то тримайте у своїх формах мешочок, який би зафіксував спам-ботів.

В основному спам-боти німі, можна сказати, вони просто заповнюють усі поля вашої форми. Вони не знають, які поля форми насправді використовуються для подальшого процесу. Ми можемо скористатися цим сценарієм і додати фіктивне поле введення (медовий пристрій) у нашу форму. На момент подання форми це приховане поле повинно залишатися порожнім. Отже, перевіряючи на стороні сервера, чи це порожнє поле порожнє, це буде дійсне подання форми, а якщо воно не порожнє, то це буде спам. Сказавши це, давайте подивимося, як створити медовий пакет і захистити форми веб-сайтів від спаму.

Створіть Honeypot і запобігайте форму зі спаму

Як ми вже говорили, використовуючи приховане поле, ми можемо обдурити спам-ботів і зупинити подання форми на стороні сервера. Для цього ми збираємось використовувати упаковку laravel-honeypot. Використовуючи цей пакет, користувач може легко захистити одну або кілька форм. Їм не потрібно писати код на стороні сервера для кожної форми окремо.

Для встановлення пакета відкрийте термінал у кореневому каталозі проекту та запустіть команду:

composer require spatie/laravel-honeypot

Після встановлення пакета опублікуйте конфігураційний файл пакета за допомогою команди:

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

Ця команда додасть honeypot.phpфайл до configкаталогу. Вам не потрібно змінювати конфігураційний файл. Натомість у .envфайл додайте константу, показану нижче.

HONEYPOT_NAME=honeypot_for_bots

Тут ми дали назву ‘honeypot_for_bots’, яка буде назвою вашого прихованого поля. Ви можете встановити будь-яке інше ім’я для цієї константи.

Далі зареєструйте глобальне проміжне програмне забезпечення, яке захистить усі ваші форми з одного місця.

appHttpKernel.php

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

Готово! Тепер перейдіть до вашої форми та додайте до неї каструлю, додавши @honeypotу форму HTML. Ваш файл леза буде виглядати приблизно так, як показано нижче.

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

Тепер, якщо спам-боти намагаються надіслати спам у вашій формі, пакет відхилить запит. Як результат, у вашій базі більше не потраплятиме спам.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі