potelo/laravel-block-bots

该软件包最新版本(1.6.1)没有提供许可证信息。

使用Redis阻止爬虫和高流量违规者

1.6.1 2023-09-21 21:50 UTC

README

Latest Version on Packagist Software License Total Downloads

简介

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:是时间周期。选项:hourlydailyweeklymonthlyannually

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT以获取详细信息。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件