被CC攻击怎么办

2018-03-05 16:22:52 danvi

如何防御cc攻击

     首先cdn是不错的的防御选择,能够同时防御cc和ddos(因为屏蔽了自己服务器的ip)攻击,不过针对于wordpress如果出现上面的wp-options或者数据库占用过大,也是无法防御的,因为每一次访问都会查询数据库,这个是没法防御的。

    这里讲解一下原理,给大家提供思路,然后在分享一下关于wordpress防御CC攻击的代码,希望能够帮助到大家!

 

CC攻击原理

    ddos必须知道对方ip才可以进行攻击,攻击模式多样性,包括攻击网站和网吧,以及对方电脑,我们可以通过cdn隐藏真实ip搞定,不过cc就是模拟用户访问了,这个没法防御的,顶多别人攻击量大的时候来个验证码访问或者临时封ip,不过只要你开启了cdn或者像无作为这样开启了双cdn防御基本都没问题。

    不过也有意外情况,大家可以通过这里分享的原理,去找出防御cc攻击的方法,其原理如下:

    cc攻击模拟多个用户访问网站→网站内容被下载→像数据库发送大量请求→cpu和带宽占用率提高(或者长时间出现满cpu,满带宽)→服务器资源被占用,用户无法访问。

    这几天无作为就是解决了数据库的需求,精简优化了数据库,导致服务器资源占用减少,解决了问题。

wordpress防御cc攻击代码

将下面的防 cc  代码加入到当前使用主题的 functions.php 中即可

//防止CC攻击

session_start(); //开启session

$timestamp = time();

$ll_nowtime = $timestamp ;

//判断session是否存在 如果存在从session取值,如果不存在进行初始化赋值

if ($_SESSION){

 $ll_lasttime = $_SESSION['ll_lasttime'];

 $ll_times = $_SESSION['ll_times'] + 1;

 $_SESSION['ll_times'] = $ll_times;

}else{

 $ll_lasttime = $ll_nowtime;

 $ll_times = 1;

 $_SESSION['ll_times'] = $ll_times;

 $_SESSION['ll_lasttime'] = $ll_lasttime;

}

//现在时间-开始登录时间 来进行判断 如果登录频繁 跳转 否则对session进行赋值

if(($ll_nowtime - $ll_lasttime) < 3){ if ($ll_times>=5){

header("location:http://127.0.0.1");//可以换成其他链接,比如站内的404错误显示页面(千万不要用动态页面)

 exit;

 }

}else{

 $ll_times = 0;

 $_SESSION['ll_lasttime'] = $ll_nowtime;

 $_SESSION['ll_times'] = $ll_times;

}

上面代码中将链接换成:127.0.0.1的作用就是自己攻击自己,因为127.0.0.1是本机的意思。