coliving/laravel-block-bots

此包最新版本(v1.0.0)没有可用的许可证信息。

使用Redis阻止爬虫和流量违规者。此版本从Potelo/laravel-block-bots分支出来,以支持Laravel 10

v1.0.0 2023-07-17 07:32 UTC

This package is not auto-updated.

Last update: 2024-09-27 11:07:01 UTC


README

Latest Version on Packagist Software License Total Downloads

简介

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

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 了解详细信息。

鸣谢

许可证

MIT许可证(MIT)。请参阅 许可证文件 了解更多信息。