使用Discuz 自帶引數防禦CC攻擊以及原理

2022-07-22 20:54:22 字數 2023 閱讀 4521

cc攻擊確實是很蛋疼的一種攻擊方式,discuz!的配置檔案中已經有了乙個自帶的減緩cc攻擊的引數,在配置檔案config.inc.php中:

$attackevasive = 0;  // 論壇防禦級別,可防止大量的非正常請求造成的拒絕服務攻擊                                 

// 防護大量正常請求造成的拒絕服務攻擊,

這個引數可以設定的值有:

0表示關閉此功能

1表示cookie重新整理限制

2表示限制**訪問

4表示二次請求

8表示回答問題(第一次訪問時需要回答問題)

正常情況下設定為 0,在遭到攻擊時,分析其攻擊手法和規律,組合使用。 可以嘗試先設定為 2, 2|4, 1|2|4|, 1|2|4|8, 如果 1|2|4|8 還不行,應用程式層面上已經抵擋不住,可能主機遭受的攻擊來自於殭屍網路的 ddos 攻擊了,建議從防火牆策略上入手。

在source/class/class_core.php檔案中可以找到如下**:

if($this->config['security']['attackevasive'] && (!defined('curscript') || !in_array($this->var['mod'], array('seccode', 'secqaa', 'swfupload'))))

$this->config[『security』][『attackevasive』]為config_global.php檔案裡設定的$_config[『security』][『attackevasive』]的值。

找到source/misc/misc_security.php檔案

if(is_string($this->config['security']['attackevasive'])) 

unset($attackevasive_tmp);

} else

$lastrequest = isset($_g['cookie']['lastrequest']) ? authcode($_g['cookie']['lastrequest'], 'decode') : '';

獲取上一次請求的時間。

$_g[『cookie』][『lastrequest』]為記錄上一次請求時間的cookie。

if($attackevasive & 1 || $attackevasive & 4)

如果設定的是cookie重新整理限制($attackevasive & 1)或者二次請求($attackevasive & 4)的方式,那麼建立以當前時間為值的上一次請求的cookie。

限制**訪問的方式。

if($attackevasive & 4) 

}

if($attackevasive & 8) 

$question .= ' = ?';

dsetcookie('visitcode', authcode(md5($answer).'|0|'.timestamp, 'encode'), timestamp + 816400, 1, true);

securitymessage($question, '', false, true);

} else }

}

回答問題的方式:第一次訪問時需要回答問題。

**:

使用C 自帶的ReportViewer控制項生成報表

第一步 新建資料集 第二步 新建模板,新增資料集 第三步 新建form窗體,拖入reportviewer控制項 第四步 載入之前建立的模板檔案 最後一步 賦值 源 如下 private void formwwlhz2 load object sender,eventargs e else if dr...

C 自帶Json序列化工具使用

一.system.web.script.serialization中的json 序列化工具 using system.web.script.serialization using system.servicemodel.web 才可以使用它的 序列化類 jsonconvert.serializeob...

C 使用引數陣列

過載,是指在相同的作用域內,宣告多個同名的方法。用以對不同型別或數量的引數的引數執行相同的操作。比如,可以求兩個或者三個 int型別數中的最大值,我們可以編寫這樣的方法實現 class util public static int max int num1,int num2,int num3 顯然,...