Discuz!修改相关文件防御CC攻击机制
在discuz的config/config_global.php配置文件中可以配置attackevasive参数开启CC攻击防御
$_config['security']['attackevasive'] = 0; // CC 攻击防御 1|2|4|8
当你的站点发现被CC攻击时,你也可以在config中打开CC攻击防御,该防御有1/2/4/8四种防御方式,每个数字的意义为:
0表示关闭此功能
1表示cookie刷新限制
2表示限制代理访问
4表示二次请求
8表示回答问题(第一次访问时需要回答问题)
正常情况下设置为0,在遭到攻击时,分析其攻击手法和规律,组合使用。可以尝试先设置为2,2|4,1|2|4|,1|2|4|8,如果1|2|4|8还不行,应用程序层面上已经抵挡不住,可能主机遭受的攻击来自于僵尸网络的DDOS攻击了,建议从防火墙策略上入手。
由于此项配置是针对所有访问者的,隐藏一旦发生误判将会影响网站的访问性,以及影响搜索引擎的抓取!
本文通过修改discuz文件,实现忽略指定ip段和搜索引擎不受此安全策略影响!
1、修改文件
\source\include\misc\misc_security.php
2、修改方法
文件中可以找到如下代码(默认第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'); } } }
本文网址:https://www.dedexuexi.com/jzjc/dzjc/3544.html
本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。