angwa / superban
此包帮助限制请求并暂时封禁可疑用户
Requires
- php: ^8.0 || ^8.1
- laravel/framework: ^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^8.18
- phpunit/phpunit: ^10.5
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_REQUESTS
、SUPERBAN_TIME_INTERVAL
和SUPERBAN_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)。