快捷搜索:   nginx

PHP使用memcached防止CC攻击 PHP+memcached+CLOUDFLARE 防CC 保护API接口

PHP+memcached+cloudflare可以达到很强防御效果,在我给一个客户定制的方案中就使用了这个方法

首先调整CLOUDFLARE的防御参数,然后安装MEMCACHED,然后设置RAILGUN,再优化网站代码,这里使用MEMCAHED的键值队列功能实现,原理与我们上一篇介绍的使用redis类似,只是方法改成用memcahed

代码案例如下:

<?php
if(class_exists('Memcached')){
$IPmax=5;//每60秒钟允许5个注册请求
$IPtime=60;//每60秒钟允许5个注册请求  
$ipfromcf=$_SERVER['HTTP_CF_CONNECTING_IP'];//这里是配合cdn.bnxb.com接入CF,所以读取CF传来的IP   
$memcached = new Memcached(); 
$memcached->addServer('127.0.0.1',11211); // 连接服务器
$memcached->setOption(Memcached::OPT_COMPRESSION, false);   
  
$num = $memcached->get($ipfromcf); 
if(!$num){$num=1;}else{$num=$num+1;}
 //echo $num;
  if($num>$IPmax){
  exit('bnxb.com 笨 牛 网提醒您:您访问频率过高,访问超限!');
   }
 $memcached->set($ipfromcf,$num,$IPtime); 
  
$memcached->quit();  
  
}
//这里放入需要执行的代码部分,比如查询数据库的操作
?>



通过这样优化,可以对反复调用你网站API接口,或者CC攻击你网站的人的IP,进行短时间屏蔽,不进行后续费资源的数据库查询操作

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论