Discuz!论坛 开启论坛防御后过滤搜索蜘蛛和白名单IP的方法

针对 Discuz!论坛 在受到攻击开启论坛防御后,搜索引擎的蜘蛛也会要求进行安全防御及验证,影响搜索引擎收录及某些特定白名单IP不需要受攻击防御限制的情况而发布以下方法,希望对开启了防御的论坛有一定作用:
1.修改config.inc.php配置文件:
查找

$admincp = array();

在其上面一行加入以下一行:

$skipattackeip = array('127.0.0.1','111.111.111.111','222.222.222.222'); //白名单IP,IP用单引号引用起来,每个IP之间用逗号隔开

2.修改include目录下的common.inc.php文件:
找到如下代码

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}

将这段代码剪切后粘贴

if($attackevasive && CURSCRIPT != 'seccode')

代码所在行的上面
3.修改common.inc.php文件:

if($attackevasive && CURSCRIPT != 'seccode')

代码修改为

if($attackevasive && CURSCRIPT != 'seccode' && !IS_ROBOT && !in_array($onlineip, $skipattackeip))

4.保存修改的以上文件就完成开启论坛防御后过滤蜘蛛和白名单的IP地址不进行安全防御及验证
原创 BY 小勤 xqin.com QQ:841168 2009-4-11

2 条评论

Leave a Reply

Your email address will not be published. Required fields are marked *

返回主页看更多
狠狠的抽打博主 支付宝 扫一扫