potelo / laravel-block-bots
该软件包最新版本(1.6.1)没有提供许可证信息。
使用Redis阻止爬虫和高流量违规者
1.6.1
2023-09-21 21:50 UTC
Requires
- php: ^7.1 || ^8.0 || ^8.1 || ^8.2
- ext-json: *
- guzzlehttp/guzzle: ^7.5.0
- laravel/framework: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0
- predis/predis: ^2.2
Requires (Dev)
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5
README
简介
Laravel Block bots 是一个软件包,用于阻止恶意爬虫、试图爬取您网站的用户或高使用率用户,但允许像GoogleBot和Bing这样的良好和重要爬虫通过。
功能
- 超快,每个请求增加小于1毫秒。
- 使用反向DNS验证爬虫
- 高度可配置
- 当用户被阻止时重定向到页面
- 允许已登录用户始终绕过阻止
安装
通过Composer
composer require potelo/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)。有关更多信息,请参阅许可证文件。