fungku/spamguard

Guarding form requests from spam bots.

v0.2.0 2016-01-25 18:38 UTC

This package is auto-updated.

Last update: 2024-03-28 21:54:15 UTC


README

Guarding form requests against bots.

Version License Downloads Quality Travis

Install

composer require fungku/spamguard

Add the service provider to config/app.php in the providers array:

Fungku\SpamGuard\Providers\SpamGuardServiceProvider::class,

Add the alias to config/app.php in the aliases array:

'SpamGuard' => Fungku\SpamGuard\Facades\SpamGuard::class,

Config (optional)

If you'd like to change the default package config values, then publish the config and change the defaults...

php artisan vendor:publish --provider="Fungku\SpamGuard\Providers\SpamGuardConfigServiceProvider" --tag="config"

Usage

To use the spamguard, there are two things you need to do.

1. Add the SpamGuard form elements in your form

Somewhere inside your form, just use SpamGuard::html().

Using all spam guard elements:

<form action="/some-route/action">

    {!! SpamGuard::html() !!}

    <!-- other form elements -->

</form>

Specifying specific elements:

<form action="/some-route/action">

    {!! SpamGuard::html(['spam_honeypot', 'spam_timer', 'spam_recaptcha']) !!}

    <!-- other form elements -->

</form>

2. Add the SpamGuard middleware to your route or controller

Specifying specific middlewares:

class MyController extends Controller
{
    public function __construct()
    {
        $this->middleware('spam_honeypot');
        $this->middleware('spam_timer');
        $this->middleware('spam_recaptcha');
    }
}

Using all spam middleware:

$this->middleware('spamguard');

Using the spam_timer middleware in a controller normally and overriding the min_time and max_time for a specific action:

$this->middleware('spam_timer:10,300', ['only' => 'postComment']);

Options

Currently there are four spam middleware registered:

  • spam_honeypot
  • spam_timer
  • spam_recaptcha
  • spamguard: A catch-all of all the available SpamGuard middleware listed above.

Notes

If you are selectively using elements and middleware, please note that the elements you use must match up with the middleware you assign to the routes.