公布提高Discuz2.0防DDOS能力的方法和代码

[复制链接]
查看: 580   回复: 1
发表于 2005-1-8 23:56:59 | 显示全部楼层 |阅读模式
公布提高Discuz2.0防DDOS能力的方法和代码。

http://www.freediscuz.com/viewthread.php?tid=958



由于admincp文件的特殊性。在产生新连接的时候。会占用很大的系统资源。所以,多个IP不断地访问admincp.php文件的时候,服务器很容易就被DDOS至死机状态。

解决办法:
admincp.php文件的开始里<?php的下面加入下面代码:


  Code: [Copy to clipboard]   
if(preg_replace("/https?:\/\/([^\/]+).*/i", "\\1", $HTTP_SERVER_VARS['HTTP_REFERER']) != $HTTP_SERVER_VARS['HTTP_HOST']) {
        exit('警告----你的*作已经被禁止。');
}



.
.
.
.
.
.
.
.
扩展,用相同的方法在每个文件头加入相同代码可以大大提高论坛的防ddos能力:
index.php头加入


  Code: [Copy to clipboard]   
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文件头加入以下代码:


  Code: [Copy to clipboard]   
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的,所以只能这样了。

注意修改代码里的地址为你的论坛地址。
发表于 2005-1-9 00:02:02 | 显示全部楼层
谢谢提供,,,不过我已经直接装了2.5的加了插件,,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则