Laravel Block bots is a pacakge that block bad crawlers, people trying to scrape your website or high-usage users, but lets good and important crawlers such as GoogleBot and Bing pass-thu.
Via Composer
composer require potelo/laravel-block-bots
In Laravel 5.4. you'll manually need to register the \Potelo\LaravelBlockBots\BlockBots::class
service provider in config/app.php
.
To adjust the library, you can publish the config file to your project using:
php artisan vendor:publish --provider="Potelo\LaravelBlockBots\BlockBotsServiceProvider"
Configure variables in your .env file:
BLOCK_BOTS_ENABLED=true // Enables block bots
BLOCK_BOTS_MODE=production // options: `production` (like a charm), `never` (bypass every route), `always` (blocks every routes)
BLOCK_BOTS_USE_DEFAULT_ALLOWED_BOTS=true // if you want to use our preseted whitelist
BLOCK_BOTS_WHITELIST_KEY=block_bot:whitelist // key for whitelist in Redis
BLOCK_BOTS_FAKE_BOTS_KEY=block_bot:fake_bots // key for fake bots in Redis
BLOCK_BOTS_PENDING_BOTS_KEY=block_bot:pending_bots // key for pending bots in Redis
BLOCK_BOTS_LOG_ENABLED=true // Enables log
It's simple. Go to Kernel.php
and add to the $routeMiddleware
block as :
protected $routeMiddleware = [
...
'block' => \Potelo\LaravelBlockBots\Middleware\BlockBots::class,
];
Than you can put in the desired groups. For exemple, lets set to the Wrb group:
protected $middlewareGroups = [
'web' => [
...
\App\Http\Middleware\VerifyCsrfToken::class,
'block:100,daily', // 100 requests per day.
],
Where:
hourly
,daily
, weekly
, monthly
, annually
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
The MIT License (MIT). Please see License File for more information.