PHP使用Redis对 IP 访问频次进行限制
前言:近期我的一个API接口站点 被恶意调用了,需要对频率进行限制,有很多种方法 但是想着直接用最简单粗暴的方法,使用Redis对 IP 访问进行限制。
宝塔 PHP需要先安装拓展 redis 
$h=3; //分钟设置 $ip=$_SERVER['REMOTE_ADDR']; $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //连接 Redis if (!$redis->exists($ip)){ //第一次访问 $redis->set($ip,1,$h*60); // 设置N分钟过期时间并设置初始值1 }else{ //已经记录过IP if ($redis->get($ip)<30){ //判断IP有没有到达拉黑阈值 $redis->incr($ip); //次数加一 }else{ exit("您的请求过于频繁,{$h}分钟内请求已达到:".$redis->get($ip)."次");} } //效果:3分钟内某IP访问超过30次则限制
附言:对IP进行限制,治标不治本,因为还是会有人伪造IP进行恶意访问,除非能精准的获取真实IP(但是很难,目前小白的我还没有发现php即使在伪造IP的各种情况下,还能完美无缺获取真实IP的方法)。
全能资源库丨本站资源除特殊声明外,均来自于网络收集整理仅供学习研究,如需商业使用请获得作者商业授权,如果侵犯了您的合法权益,请联系我们的投诉邮箱:qinglikf@163.com,我们将在24小时内删除!如有其它疑问请联系在线客服(微信公众号:轻狸团队 丨菜单栏人工客服)特别注意:访问本站即同意本站《免责声明&版权声明》,本站原创内容未经授权禁止转载!
全能资源库 » PHP使用Redis对 IP 访问频次进行限制
全能资源库 » PHP使用Redis对 IP 访问频次进行限制