承接 angwa/superban 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

angwa/superban

Composer 安装命令:

composer require angwa/superban

包简介

This package helps to limit requests and ban suspicious users for a period of time

README 文档

README

This laravel package helps to limit request and ban suspicious users for a period of time.

Installation and usage

This package requires PHP and Laravel installed.

You can install the package via composer:

composer require angwa/superban:dev-master

Next step is to register our service providers. Simply open config/app.php and locate providers section and add Superban\SuperbanServiceProvider::class,, Like below

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

Load Configuration file

Our configuration file is named superban.php and will be created when you run the bash code below

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

You can also copy the code below, create a file named superban.php in the config folder and paste the code below

<?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),

];

The above env variables are used to set the application.

The following are optional. If you can decide to set it only when you want a uniform rate limiter for your multiple routes. You just simply set it from here and it will apply globally SUPERBAN_MAXIMUM_REQUESTS, SUPERBAN_TIME_INTERVAL and SUPERBAN_BAN_DURATION

Usage

Description

This package will require you to set the SUPERBAN_CACHE_DRIVER enviroment in your .env. It will default to file as the caching machanism. but if you want a different caching driver that is installed in your laravel application, you can specify it.

SUPERBAN_CACHE_DRIVER=file

it can be database, redis or which ever caching driver you want to use

Example

//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";
    });
});

Where superban is the name of the middleware, 10 is the number of request, 1 is the number of minutes interval for the 10 request. and the last parameter 1 is the number of minutes you will be banned if you make a request more than 10 times per minute.

Update the limit to which ever value you want and you are good to go

Testing

To run the tests on package, install/update composer and type this:

vendor/bin/phpunit

Security

If you discover any security related issues, please email angwamoses@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT).

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-12-21