1. 程式人生 > >Discuz!開源系統如何防禦CC攻擊?

Discuz!開源系統如何防禦CC攻擊?

Discuz!是一套免費的開源建站系統,在國內挺受歡迎的,主要用來搭建社群論壇類的網站。社群論壇類的網站由於流量比較大,很容易遭到DDOS攻擊,特別是針對網頁的CC攻擊。一旦網站遇到類似攻擊,不但導致使用者流失,還會被搜尋引擎降權。那當遇到CC攻擊時該怎麼辦呢?其實Discuz!系統有一個緩解CC攻擊的功能,今天墨者安全就教大家如何進行配置。


 

在Discuz!的配置檔案找到config.inc.php,可以看到預設數值是0。

$attackevasive = 0;

我們可以修改這個引數來緩解CC攻擊,可以設定的值有:

0 表示關閉此功能;
1 表示cookie重新整理限制;


2 表示限制代理訪問;
4 表示二次請求;
8 表示回答問題(第一次訪問時需要回答問題);

預設值是0,當遭到攻擊時,先分析其攻擊手法和規律,組合使用。可以嘗試先設定為2,2|4,1|2|4|,1|2|4|8,如果1|2|4|8還不行,那說明應用程式層面上已經抵擋不住,網站遭到的可能是大流量的DDOS洪水攻擊,只能通過像墨者安全那樣專業的高防服務才能有效的進行防禦。


 

修改該配置數值雖然能緩解CC攻擊,當有可能會影響搜尋引擎蜘蛛抓取降低SEO效果。可以試試以下方法:

在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');
}
}

修改完成後覆蓋,更新快取即可,修改前切記做好檔案備份。這樣就可以避免搜尋引擎蜘蛛受到影響了,希望通過這篇文章能夠對使用Discuz!開源系統搭建網站的站長或者企業有所幫助,儘可能的降低被CC攻擊造成的損失。