開啟Discuz!防禦級別的一些影響

前幾天論壇疑似遭到大量流量攻擊,到了網路上找了一下,發現Discuz!系統裡已有防禦級別,(詳情請見「開啟Discuz!內置的防禦級別,防止黑客流量攻擊」),當時開啟了「1=cookie 刷新限制」以及「4=二次請求」這兩項Discuz!防禦級別,接著連續幾天,發現在Google搜尋引擎搜尋過後的果解似乎發生了異狀!

  平常會不定時的在Google搜尋引擎裡面打上「site:網址」(「網址」是指你想要查找的網址,而非「網址這兩個字」),來查詢網站收錄的情形,但是過了幾天赫然發現,Google收錄量突然大幅減少,且被刪了一半的網址,這時就開始又在網路上查找到底哪裡出現了問題……

作為一個大站,論壇人氣旺起來後,頁面重載開啟是一種比較好解決CPU佔用資源過高的方法,但同時也因為頁面重載開啟了,對百度等的引擎蜘蛛起到了反作用,更有可能收錄到你站時只顯示“頁面重載開啟”

作為一個站這樣是很不好的影響,現在為大家設計了一個程序,程序代碼如下:

打開到include/security.inc.php文件

找到下面代碼:

if($attackevasive & 4) {

if(empty($_DCOOKIE[”lastrequest”]) || \$timestamp – \$_DCOOKIE[”lastrequest”] > 300) {

securitymessage(”attachsave_4_subject”, ”attachsave_4_message”);

}

}

複製代碼修改為如下:

if($attackevasive & 4) {

 if(!is_web_spider()) {

if(empty($_DCOOKIE[”lastrequest”]) || $timestamp – $_DCOOKIE[”lastrequest”] > 300) {

securitymessage(”attachsave_4_subject”, ”attachsave_4_message”);

}

 }

}

/* 判斷是否為搜索引擎蜘蛛 */

function is_web_spider(){

   \$UserAgent=\$_SERVER[”HTTP_USER_AGENT”];

   if (empty(\$UserAgent)){

       return false;

   }

$searchengine_bot = array(”googlebot”,”mediapartners-google”,”baiduspider+”,”msnbot”,”yodaobot”,”yahoo! slurp;”,”yahoo! slurp china;”,”iaskspider”,”sogou web spider ”,”sogou push spider”);

$searchengine_name = array(”GOOGLE”,”GOOGLE ADSENSE”,”BAIDU”,”MSN”,”YODAO”,”YAHOO”,”Yahoo China”,”IASK”,”SOGOU”,”SOGOU”);

   $spider = strtolower($UserAgent);

foreach ($searchengine_bot AS $key => $value)

   {

if (strpos($spider, $value) !== false){

           return true;

       }

   }

   return false;

}

複製代碼原理上是能解決這種又能降低CPU佔用率又能讓各大搜索引摯收錄正常,但實際應用還待大家驗證使用。

如同上面所說的,真正效果就要自己去實測才知道囉!不過最徹底的方法還是找出真正在惡意流量攻擊的IP,然後拒絕訪問主機才是最根本之道,只不過要小心的是,要注意IP是否真的封對人,若是封到搜尋引擎蜘蛛的IP的話,後果可就不堪設想了,或許還會被刪掉一大半的收錄量,至於搜尋引擎IP有哪些我再另外發給大家看吧!

文章資訊

  • 原始出處:原發表於舊部落格。
  • 撰寫日期:2010年06月13日 21時42分
  • 補發日期:2016年11月03日 13時12分
  • 補發緣由:原舊部落格關閉,新建此站,舊文章搬遷及補發至本站。
  • 其他備註: (1) 用以紀錄過往的生活,供日後查閱發生過的事情和心情; (2) 紀錄以往的寫作模式,以比較日後進步的程度,及方向的變化; (3) 原文版權詳情請查看「版權所有」頁面。

★ 按讚:  
★ 分享:
★ 追蹤:  

More Comments