Discuz!X2防CC攻击的设置方法(经测试适合X2.5 X3)

发布于 2013-07-05  106 次阅读


用Discuz!X2建设论坛的网站不计其数,但也经常听到站长们报怨自己的论坛被CC攻击,导致网站不能正常访问或瘫痪,其实Discuz!是有防CC攻击的相关设置的,大部分站长很可能没有去启用这些功能,具体实现方法如下:

一、CC攻击的原理分析:

攻击者控制某些主机不停地发大量数据包给对方器造成器资源耗尽,一直到宕机崩溃。攻击者利用 CC 的这个特点模拟 N 个用户并发连接,而这些连接都是真实、分散的,CC 攻击的请求全都是有效的请求,无法拒绝的请求,不易被察觉,那么后果就是站点的页面访问速度集聚下降,用户访问的时候变的非常非常慢。所以当我们的站点变的比以往慢很多倍的时候就有可能是被 CC 攻击了。

二、Discuz!X2防CC攻击原理分析:

1代表cookie 刷新限制:

当同一个 cookie 请求大于或等于 1 秒时刷新,将被限制访问。

2代表限制代理访问:

大家应该都理解什么是代理访问吧?这里就不详细解释了,相信很多站长朋友对代理访问比较熟悉。
利用代理访问是比较常用的一种攻击手段,因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。
使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(有人利用2000个代理就能产生 35 万并发连接)。
所以限制代理访问可以有效防御CC攻击。

4代表二次请求:

开启了二次请求机制,先显示等待 2 秒重新加载然后才会跳转出真实的帖子,如下图所示:

8代表回答问题:

当第一次访问时需要回答问题,如下图所示:

答案正确后才可以看到页面的具体内容。

了解了这些数字参数的涵义,我们设置起来就容易的多了,比如我设置成 1|2|4 就代表限制cookie刷新+限制代理访问+开启二次请求。

三、详细设置教程:

通过上面的概念性了解,实际的操作开始了,必须要在站点的配置文件中设置正确合理后,才可有效防御CC攻击。
找到站点程序的 config 文件夹,打开 config_global.php 文件,找到:

$_config['security']['attackevasive'] = '0';

进行修改即可,0为关闭防御,打开防御可以把0修改为组合的形式,组合为: 1|2, 1|4, 2|8, 1|2|4…等。建议大家使用以下方案:

$_config['security']['attackevasive'] = 1|2|4;

此方案可以通过延缓访问的方式,减轻访问量较大的站点的服务器压力。

通过Discuz自带的防CC攻击是非常有效的,大家可以试试