melikceran / laravel-ratelimit-advanced
扩展Laravel速率限制类,并为搜索引擎提供无限访问权限。
1.0.1
2022-04-02 03:29 UTC
This package is auto-updated.
Last update: 2024-09-30 01:54:27 UTC
README
这是Laravel速率限制类的扩展版本。移除了对搜索引擎机器人的限制。
100%检测到假机器人。通过IP和反向DNS查询检测真实机器人。支持IPv4和IPv6。
默认支持的搜索引擎机器人;
Google, Bing, Msn, Yandex, Yahoo, Baidu, Petalbot
它如何工作?
- 检查User-Agent信息是否属于搜索引擎。
- 从IP地址执行DNS查找检查。
- 通过反向DNS查询确认它是一个真实的搜索引擎机器人。
- 如果是一个允许的机器人,它将白名单IPv4/IPv6地址。
- 它还限制了请求访问者IP地址的最后一段(1.1.1.x)。它阻止来自同一段的请求和攻击。
- 其他访问者可以在你指定的限制内进入网站。
API或Web可用。在API使用中,它以json格式返回超过限制的信息。
{'status':429, 'message':'Too Many Requests!'}
要求;
这是Laravel速率限制类的扩展版本。没有额外要求。
缓存:Laravel Cache
速率限制:Laravel RateLimiter
IP查找:gethostbyaddr()
反向DNS查找:dns_get_record()
安装
composer require melikceran/laravel-ratelimit-advanced
配置
要发布配置文件;(config/ratelimit.php)
php artisan vendor:publish --tag=ratelimit
使用;
指定访问者每分钟可以发起多少请求。
Route::get('/', function () {
return view('welcome');
})->middleware('ratelimit:30');
不使用缓存进行实时查询;
Route::get('/', function () {
return view('welcome');
})->middleware('ratelimit:30,false');