coliving / laravel-block-bots
此包最新版本(v1.0.0)没有可用的许可证信息。
使用Redis阻止爬虫和流量违规者。此版本从Potelo/laravel-block-bots分支出来,以支持Laravel 10
v1.0.0
2023-07-17 07:32 UTC
Requires
- php: ^7.1 || ^8.0 || ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.5.0
- laravel/framework: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0
- predis/predis: ^1.1
Requires (Dev)
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2024-09-27 11:07:01 UTC
README
简介
Laravel Block bots 是一个包,用于阻止不良爬虫、试图抓取您网站的用户或高使用量用户,但允许好的和重要的爬虫(如GoogleBot和Bing)通过。(这是从Potelo/laravel-block-bots分支出来以支持Laravel 10的。)
特性
- 超快,每个请求增加不到1ms。
- 使用反向DNS验证爬虫
- 高度可配置
- 当用户被阻止时重定向到页面
- 允许已登录用户始终绕过阻止
安装
通过Composer
composer require coliving/laravel-block-bots
要求
- 此包严重依赖Redis。要使用它,请确保Redis已配置并准备好。(见 Laravel Redis 配置)
在 Laravel 5.5 之前
在 Laravel 5.4 中,您需要手动在 config/app.php
中注册 \Potelo\LaravelBlockBots\BlockBots::class
服务提供者。
配置
要调整库,您可以使用以下命令将配置文件发布到您的项目中
php artisan vendor:publish --provider="Potelo\LaravelBlockBots\BlockBotsServiceProvider"
在 .env 文件中配置变量
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
用法
很简单。转到 Kernel.php
并将其添加到 $routeMiddleware
块中,如下所示
protected $routeMiddleware = [
...
'block' => \Potelo\LaravelBlockBots\Middleware\BlockBots::class,
];
然后您可以将它们放入所需的组中。例如,让我们将其设置为 Wrb 组
protected $middlewareGroups = [
'web' => [
...
\App\Http\Middleware\VerifyCsrfToken::class,
'block:100,daily', // 100 requests per day.
],
其中
- 100:是IP每天可以访问的页面数
- daily:是时间段。选项:
hourly
,daily
,weekly
,monthly
,annually
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 了解详细信息。
鸣谢
许可证
MIT许可证(MIT)。请参阅 许可证文件 了解更多信息。