laravel 实现访问频率限制

转载 2018年04月16日 12:07:29

按官方解释,实现访问频率限制非常简单:

1
2
3
Route::get('test', function(){
  return 'helle world' ;
})->middleware('throttle');

也确实如此,cache存储访问次数,做出判断。

之前使用了zizaco/entrust(一个基于角色的权限管理包),其中把 .env 中的CACHE_DRIVER=file 改为了 CACHE_DRIVER=array。所以问题出现了。Laravel支持多种cache驱动,File, Array, Db, Redis等,但是throttle 好像使用File类型的驱动才有效。

我的修改如下:

vendor/illuminate/cache/RateLimiter.php 文件

1
2
3
4
5
6
7
8
public function __construct(Cache $cache)
{
    $this->cache = $cache;
}
public function __construct()
{
    $this->cache = app('cache')->driver('file');
}

把上面的改为下面的就可以了。throttle中间件也起作用了。

nginx频率限制

nginx官方版本限制IP的连接和并发分别有两个模块: HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制...
  • m0_37886429
  • m0_37886429
  • 2017年05月04日 10:18
  • 717

Laravel throttle中间件失效问题

Laravel throttle中间件失效问题按官方解释,实现访问频率限制非常简单:Route::get('test', function(){ return 'helle world' ;...
  • hxx_yang
  • hxx_yang
  • 2016年06月23日 16:00
  • 1252

ASP.NET网站限制访问频率

      最近做了一个免费发短信的小网站(http://freesms.cloudapp.net/),但发现最近有人破解了我的验证码,以每3秒/条的速度用我的短信服务来发他的广告。更换验证码程序和过...
  • xinma
  • xinma
  • 2009年09月19日 22:18
  • 735

使用spring拦截器做频率限制

基于spring做的访问频率限制
  • nrs12345
  • nrs12345
  • 2016年01月05日 00:07
  • 4954

限制用户访问频率——Django

访问频率限制 中间件
  • weixin_38748717
  • weixin_38748717
  • 2018年01月18日 13:58
  • 128

nginx添加ip访问频率限制

使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。  http{     ...     #定义一...
  • yaoyaodexiaozhu
  • yaoyaodexiaozhu
  • 2016年04月26日 17:24
  • 1712

nginx对ip的访问频率进行限制(limit_req)和对ip连接数(并发量)进行限制(limit_conn)

1.nginx 限制每个ip的访问频率,需要limit_req_zone和limit_req配合使用   在http中定义limit_req_zone:   limit_req_zone $bin...
  • lppklm
  • lppklm
  • 2015年08月18日 18:28
  • 5320

cxf+spring开发(三)--- 限制固定Ip地址对接口的访问次数

需求:在cxf+spring环境下,针对某个接口,限制Ip地址对其访问次数,超过一定访问次数后抛出异常。 1.此Ip地址是经过拦截器被允许访问的; 2.同一IP地址对接口的访问次数不能超过两次。 备注...
  • Yolanda_NuoNuo
  • Yolanda_NuoNuo
  • 2015年07月23日 10:47
  • 2196

一种基于Redis的10行代码实现IP频率控制方法

基于IP频率限制是种常见需求,基于Redis可以十分简单实现对IP的频率限制,具体手段为利用Redis的key过期和原子加减两个特性。 以IP作为key,频率为key过期时长,比如限制单个IP在2秒内...
  • Aquester
  • Aquester
  • 2016年09月08日 00:08
  • 638

WebServices 简单安全验证以及调用频率限制

服务端代码:namespace WebServicesTest { /// /// Security 的摘要说明 /// [WebService(Namespace...
  • lyh1112
  • lyh1112
  • 2016年09月29日 08:28
  • 349
收藏助手
不良信息举报
您举报文章:laravel 实现访问频率限制
举报原因:
原因补充:

(最多只允许输入30个字)