针对 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
转贴的……
自己测试一下
我是来测试留言的……