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

它如何工作?

  1. 检查User-Agent信息是否属于搜索引擎。
  2. 从IP地址执行DNS查找检查。
  3. 通过反向DNS查询确认它是一个真实的搜索引擎机器人。
  4. 如果是一个允许的机器人,它将白名单IPv4/IPv6地址。
  5. 它还限制了请求访问者IP地址的最后一段(1.1.1.x)。它阻止来自同一段的请求和攻击。
  6. 其他访问者可以在你指定的限制内进入网站。

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');