...
✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come creare Honeypot per combattere lo spam dei moduli in Laravel

55

Una volta che il tuo sito web sarà attivo molto presto, inizierai a ricevere spam dai moduli del tuo sito web. Gli spambot scrivono un programma per computer che compila semplicemente il modulo con informazioni false. È un grattacapo per i proprietari di siti ripulire questi dati indesiderati e proteggere il database da tali record non necessari. Questo articolo è stato scritto per le persone che hanno creato la loro applicazione utilizzando Laravel. Studieremo come proteggere i propri moduli dallo spam in Laravel.

L’utente può aggiungere reCAPTCHA sul proprio modulo che verificherà se i valori del modulo sono compilati da umani o meno. Ma così facendo, i tuoi utenti devono risolvere il puzzle prima di inviare un modulo. Un altro modo è aggiungere l’ultima versione di Google reCAPTCHA. Ma mostrerà un’icona reCAPTCHA nell’angolo in basso a destra del tuo sito web.

Alla maggior parte dei proprietari di siti non piacciono i captcha. E se odi i captcha, tieni un honeypot nei tuoi moduli che intrappolerebbe gli spambot.

Per lo più gli spambot sono stupidi, possiamo dire che riempiono tutti i campi del modulo. Non sono a conoscenza di quali campi del modulo sono effettivamente in uso per ulteriori processi. Possiamo sfruttare questo scenario e aggiungere un campo di input fittizio (honeypot) al nostro modulo. Questo campo nascosto dovrebbe rimanere vuoto al momento dell’invio del modulo. Quindi, mentre controlli sul lato server se questo campo nascosto è vuoto, allora sarà un invio di modulo valido e se non è vuoto, allora sarà spam. Detto questo, diamo un’occhiata a come creare honeypot e proteggere i moduli dei siti Web dallo spam.

Crea Honeypot e previeni il modulo dallo spam

Come abbiamo detto, utilizzando un campo nascosto possiamo ingannare gli spambot e interrompere l’invio del modulo sul lato server. Per questo scopo, useremo il pacchetto laravel-honeypot. Utilizzando questo pacchetto, un utente può proteggere facilmente uno o più moduli. Non hanno bisogno di scrivere il codice lato server per ogni modulo separatamente.

Per l’installazione del pacchetto, apri il terminale nella directory principale del progetto ed esegui il comando:

composer require spatie/laravel-honeypot

Dopo l’installazione del pacchetto, pubblica il file di configurazione del pacchetto utilizzando il comando:

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

Questo comando aggiungerà il honeypot.phpfile nella configdirectory. Non è necessario modificare il file di configurazione. Invece, nel .envfile aggiungi la costante mostrata di seguito.

HONEYPOT_NAME=honeypot_for_bots

Qui abbiamo dato il nome ‘honeypot_for_bots’ che sarà il nome del tuo campo nascosto. Puoi assegnare qualsiasi altro nome a questa costante.

Quindi, registra il middleware globale che proteggerà tutti i tuoi moduli da un unico posto.

appHttpKernel.php

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

Tutto fatto! Ora vai al tuo modulo e aggiungi l’honeypot aggiungendo @honeypotnel modulo HTML. Il tuo file blade assomiglierà a qualcosa di simile sotto.

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

Ora, se gli spambot stanno cercando di inviare spam nel tuo modulo, il pacchetto scarterà la richiesta. Di conseguenza, nessun altro spam finirà nel tuo database.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More