修改Discuz!X系列开启防CC攻击,不影响搜索引擎收录

  最近网站一直被攻击,特别是新上线的交流社区,所以今天写了一个开启CC攻击防护代码,而且不影响搜索引擎收录。

  在config_global.php文件中有如下代码:

   

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

  可以设置的值有:

   

0表示关闭此功能
1表示cookie刷新限制
2表示限制代理访问
4表示二次请求
8表示回答问题(第一次访问时需要回答问题)

  同时也可以设置为组合的方式,如1|2表示同时启用cookie刷新限制和限制代理访问。

在source/include/misc/misc_security.php文件中可以找到如下代码(默认第46~50行)

    

if($attackevasive & 4) {
if(empty($lastrequest) || TIMESTAMP - $lastrequest > 300) {
securitymessage('attackevasive_4_subject', 'attackevasive_4_message');
}
}

  修改为:

   

if($attackevasive & 4) {
if(empty($lastrequest) || TIMESTAMP - $lastrequest > 300) {
$kw_spiders = 'Bot|Crawl|Spider';
// keywords regular expression of search engine spiders
if(preg_match("/($kw_spiders)/i", $_SERVER['HTTP_USER_AGENT'])) {
// match search engine spiders
}else{
securitymessage('attackevasive_4_subject', 'attackevasive_4_message');
}
}

  

posted @ 2019-09-27 11:31  圆柱模板  阅读(448)  评论(0编辑  收藏  举报