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)
- 最新评论