你的網站受到攻擊了嗎,不少Discuz論壇使用者反應,網站總是受到攻擊,有沒有解決的方法呢,下面我們就來看看Discuz論壇如何防御cc的攻擊吧。
Discuz論壇教程之修改CC攻擊防御機制attackevasive,實現忽略指定ip段和搜索引擎不受影響。
在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、修改方法
在 global $_G; 下面加入如下代碼
/*拓展安全機制 開始*/
/*配置1 搜索引擎*/
/*范圍:0=不額外處理;1=該搜索引擎跳過dz安全防護;*/
$s_baidu=1;
$s_360=1;
$s_google=1;
/*配置2 跳過dz安全防護的ip段,一行一個,注意格式*/
$ip_list=array(
'127.*.*.*',
'192.168.*.*',
'10.*.*.*',
);
/*開始處理*/
$doing=false;
$agent=$_SERVER['HTTP_USER_AGENT'];
if($s_baidu&&stristr($agent,"Baiduspider")){
$doing=true;
}elseif($s_360&&stristr($agent,"360Spider")){
$doing=true;
}elseif($s_google&&stristr($agent,"Googlebot")){
$doing=true;
}
if(!$doing){
$ip_arr=$temp = explode('.',$_G['clientip']);
if(in_array($ip_arr[0].'.*.*.*',$ip_list)){
$doing=true;
}elseif(in_array($ip_arr[0].'.'.$ip_arr[1].'.*.*',$ip_list)){
$doing=true;
}elseif(in_array($ip_arr[0].'.'.$ip_arr[1].'.'.$ip_arr[2].'.*',$ip_list)){
$doing=true;
}elseif(in_array($ip_arr[0].'.'.$ip_arr[1].'.'.$ip_arr[2].'.'.$ip_arr[3],$ip_list)){
$doing=true;
}
}
//var_dump($this->config['security']['attackevasive']);
if($doing){
$this->config['security']['attackevasive']='0';
}
//var_dump($this->config['security']['attackevasive']);
/*拓展安全機制 結束*/
3、配置說明
a.搜索引擎有三個設置項目,1該搜索引擎跳過dz安全防護
b.ip段一行一個,格式如示例
4、操作說明,修改php文件,請記得用專門的代碼編輯器,切勿使用記事本,如果電腦上沒有代碼編輯器,推薦使用notepad++ 只有幾M大小;
新聞熱點
疑難解答