安全中国首页 > 文章中心 > Discuz文章
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

提高Discuz防DDOS能力的方法和代码

更新时间:2007-9-8 1:05:01
责任编辑:池天
热 点:
由于admincp文件的特殊性。在产生新连接的时候。会占用很大的系统资源。所以,多个IP不断地访问admincp.php文件的时候,服务器很容易就被DDOS至死机状态。

解决办法:
admincp.php文件的开始里<?php的下面加入下面代码:
if(preg_replace("/https?:\/\/([^\/]+).*/i", "\\1", $HTTP_SERVER_VARS['HTTP_REFERER']) != $HTTP_SERVER_VARS['HTTP_HOST']) {
 exit('警告----你的操作已经被禁止。');
}
扩展,用相同的方法在每个文件头加入相同代码可以大大提高论坛的防ddos能力:
index.php头加入
if(preg_replace("/https?:\/\/([^\/]+).*/i", "\\1", $HTTP_SERVER_VARS['HTTP_REFERER']) != $HTTP_SERVER_VARS['HTTP_HOST']) {
 exit('点击进入论坛。<a href="http://www.freediscuz.com/index.php">http://www.freediscuz.com</a>');
}
论坛根目录里的其他php文件头加入以下代码:
if(preg_replace("/https?:\/\/([^\/]+).*/i", "\\1", $HTTP_SERVER_VARS['HTTP_REFERER']) != $HTTP_SERVER_VARS['HTTP_HOST']) {
 exit('警告----你的操作已经被禁止。<a href="http://www.freediscuz.com/index.php">http://www.freediscuz.com</a>');

}

这样修改以后,每个访问你的论坛的人都必须从首页点击链接才能进入论坛,如果是DDOS攻击论坛的话,攻击者发送的信息就不会传递给论坛的php程序了。这样就大大的节省了系统资源,使得论坛的防DDOS能力大大增加。特别是在unix系统下,防御能力甚至是数倍的增加。 当然,如果你想完全解决防DDOS,那最好是在屏蔽IP访问了,但通常我们租用空间,管理员不会轻易封IP的,所以只能这样了。

注意修改代码里的地址为你的论坛地址。

 
相关文章
一日一文章
 
一日一软件
一日一动画