angwa/superban

此包帮助限制请求并暂时封禁可疑用户

dev-master 2023-12-22 07:38 UTC

This package is not auto-updated.

Last update: 2024-09-27 14:09:05 UTC


README

此laravel包帮助限制请求并暂时封禁可疑用户。

安装和用法

此包需要已安装PHP和Laravel。

您可以通过composer安装此包

composer require angwa/superban:dev-master

下一步是注册我们的服务提供者。只需打开config/app.php文件,找到提供者部分,并添加Superban\SuperbanServiceProvider::class,,如下所示

'providers' => [
    ...
    Superban\SuperbanServiceProvider::class,
    ...
]

加载配置文件

我们的配置文件名为superban.php,在您运行以下bash代码时将创建

php artisan vendor:publish --provider="Superban\SuperbanServiceProvider"

您也可以复制以下代码,在config文件夹中创建一个名为superban.php的文件,并将以下代码粘贴进去

<?php

return [
    /*
     * This package will look for SUPERBAN_CACHE_DRIVER in your env file
     * This package may look for ```SUPERBAN_MAXIMUM_REQUESTS```,  ```SUPERBAN_TIME_INTERVAL``` and ```SUPERBAN_BAN_DURATION``` in your env file
     * You can decide to set the default values for your superban generally.
     */

    'superban_cache_driver' => env('SUPERBAN_CACHE_DRIVER', 'file'),
    'superban_max_requests' => env('SUPERBAN_MAXIMUM_REQUESTS', 200),
    'superban_time_interval' => env('SUPERBAN_TIME_INTERVAL', 2),
    'superban_ban_duration' => env('SUPERBAN_BAN_DURATION', 1440),

];

上述环境变量用于设置应用程序。

以下为可选项。如果您决定只为您的多个路由设置统一速率限制,则可以在这里设置。它将全局应用SUPERBAN_MAXIMUM_REQUESTSSUPERBAN_TIME_INTERVALSUPERBAN_BAN_DURATION

用法

描述

此包需要您在.env中设置SUPERBAN_CACHE_DRIVER环境变量。它将默认使用文件作为缓存机制,但如果您想使用已安装在您的laravel应用程序中的不同缓存驱动程序,可以指定它。

SUPERBAN_CACHE_DRIVER=file

可以是数据库、redis或您想要使用的任何缓存驱动程序

示例

//For Example
// You can use the middleware in your route like this 

Route::middleware(['superban:10,1,1'])->group(function () {
    Route::get('/test-route', function () {
        return "Hello world";
    });
});

其中superban是中间件名称,10是请求次数,1是10次请求的分钟间隔。最后一个参数1表示如果您每分钟请求超过10次,将被封禁的分钟数。

将限制更新为您想要的任何值,然后您就可以开始了

测试

要运行包的测试,请安装/更新composer,然后键入以下内容

vendor/bin/phpunit

安全

如果您发现任何与安全相关的问题,请通过电子邮件angwamoses@gmail.com联系,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。