✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka luoda Honeypot taistelulomakkeen roskapostia vastaan ​​Laravelissa

23

Kun verkkosivustosi käynnistyy pian, alat saada roskapostia verkkosivustosi lomakkeista. Spambot kirjoittavat tietokoneohjelman, joka täyttää lomakkeen väärennetyillä tiedoilla. Sivustojen omistajille on päänsärky puhdistaa nämä ei-toivotut tiedot ja suojata tietokantasi tarpeettomilta tietueilta. Tämä artikkeli on kirjoitettu ihmisille, jotka rakensivat sovelluksensa Laravelin avulla. Tutkimme, kuinka heidän muotojaan voidaan suojata roskapostilta Laravelissa.

Käyttäjä voi lisätä reCAPTCHA: n lomakkeeseensa, joka testaa, täyttävätkö lomakkeen arvot ihmiset vai eivät. Mutta tekemällä niin käyttäjien on ratkaistava pulma ennen lomakkeen lähettämistä. Toinen tapa on lisätä Google reCAPTCHA: n uusin versio. Mutta se näyttää reCAPTCHA-kuvakkeen verkkosivustosi oikeassa alakulmassa.

Suurin osa sivuston omistajista ei pidä captchoista. Ja jos vihaat captchoja, pidä lomakkeissasi hunajapotti, joka ansaisi roskapostit.

Enimmäkseen spambot ovat tyhmiä, voimme sanoa, koska ne vain täyttävät kaikki lomakekentät. He eivät ole tietoisia siitä, mitä lomakekenttiä todella käytetään jatkoprosessissa. Voimme hyödyntää tätä skenaariota ja lisätä lomakkeeseemme tyhjän syötekentän (hunajapotin). Tämän piilotetun kentän tulee olla tyhjä lomaketta lähetettäessä. Joten kun palvelinpuolella tarkistetaan, onko tämä piilotettu kenttä tyhjä, se on kelvollinen lomakkeen lähetys ja jos se ei ole tyhjä, se on roskapostia. Tämän jälkeen katsotaanpa, miten luoda hunajapottia ja suojata verkkosivustolomakkeita roskapostilta.

Luo Honeypot ja estä lomake roskapostista

Kuten sanoimme piilotetun kentän avulla, voimme huijata spambot ja lopettaa lomakkeen lähettämisen palvelinpuolella. Tähän tarkoitukseen aiomme käyttää laravel-honeypot-pakettia. Tämän paketin avulla käyttäjä voi suojata yhtä tai useampaa lomaketta helposti. Heidän ei tarvitse kirjoittaa palvelinpuolen koodia jokaiselle lomakkeelle erikseen.

Pakettiasennusta varten avaa pääte projektin juurihakemistossa ja suorita komento:

composer require spatie/laravel-honeypot

Kun paketti asennetaan, julkaise paketin määritystiedosto komennolla:

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

Tämä komento lisää honeypot.phptiedoston confighakemistoon. Sinun ei tarvitse muokata määritystiedostoa. Sen sijaan .envlisää tiedostoon alla esitetty vakio.

HONEYPOT_NAME=honeypot_for_bots

Tässä annoimme nimen "honeypot_for_bots", joka on piilotetun kentän nimi. Voit asettaa tälle vakiolle minkä tahansa muun nimen.

Rekisteröi seuraavaksi maailmanlaajuinen väliohjelmisto, joka suojaa kaikki lomakkeet yhdestä paikasta.

appHttpKernel.php

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

Valmista! Siirry nyt lomakkeeseesi ja lisää hunajapotti lisäämällä @honeypotsiihen lomake HTML. Terätiedostosi näyttää jotain alla olevalta.

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

Jos roskapostirobotit yrittävät lähettää roskapostia lomakkeellasi, paketti hylkää pyynnön. Seurauksena ei enää roskapostia päädy tietokantaan.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja