arubacao / aws-ip-range-middleware
Laravel 中间件,用于亚马逊网络服务(AWS)IP 地址范围
1.0.2
2021-05-03 00:05 UTC
Requires
- php: ^7.0|^8.0
- graham-campbell/guzzle-factory: ^3.0|^4.0|^5.0
- illuminate/cache: ^5.0|^6.0|^7.0|^8.0
- symfony/http-foundation: ~2.0|~3.0|~4.0|~5.0
Requires (Dev)
- orchestra/testbench: ~3.0|4.*|5.*|6.*
- phpunit/phpunit: ~4.8.36 || >=5.7.21
This package is auto-updated.
Last update: 2024-08-29 04:37:17 UTC
README
此包允许对传入的 请求 进行验证,以匹配官方的 亚马逊网络服务(AWS)IP 地址范围。
使用此功能可以确定传入的请求是否确实来自 AWS 基础设施,例如用于 简单通知服务(SNS) 有效负载。
特性
- 仅允许来自 AWS 的传入 HTTP 请求,拒绝所有其他请求
- AWS ip 地址范围 会按需获取,因此始终是最新的
- ip 地址范围 缓存 -> 每天只获取一次
- 在从 AWS 获取 ip 地址范围 时遇到网络问题,使用指数退避策略重试
备注
arubacao/aws-ip-range-middleware
在 Laravel5.0
-7.*
和 PHP7.0
-7.3
上功能正常且经过全面测试。
安装
使用 composer 安装此包
composer require arubacao/aws-ip-range-middleware
注册中间件
首先在您的 app/Http/Kernel.php
文件中将 aws-ip-range-middleware 分配给 $routeMiddleware
属性的密钥。
// Within App\Http\Kernel Class... protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, // . // . // . 'aws-ip-range' => \Arubacao\AwsIpRange\AwsIpRangeMiddleware::class, ];
用法
一旦在 HTTP 核心中定义了 aws-ip-range-middleware,您可以使用中间件方法将其分配给路由
Route::post('api/sns', function () { // })->middleware('aws-ip-range'); // Older Laravel Versions: Route::post('api/sns', ['middleware' => 'aws-ip-range', function () { // }]);
在分配中间件时,也可以传递完全限定的类名
注意:在这种情况下,您不需要在 HTTP 核心中注册 aws-ip-range-middleware
use Arubacao\AwsIpRange\AwsIpRangeMiddleware; Route::post('api/sns', function () { // })->middleware(AwsIpRangeMiddleware::class); // Older Laravel Versions: Route::post('api/sns', ['middleware' => AwsIpRangeMiddleware::class, function () { // }]);
待办事项
- 启用/禁用缓存
- 选择缓存存储
- 获取 ip 地址范围并将其存储在本地的命令
测试
composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。