被CC攻擊怎么辦
如何防御cc攻擊
首先cdn是不錯的的防御選擇,能夠同時防御cc和ddos(因為屏蔽了自己服務器的ip)攻擊,不過針對于wordpress如果出現上面的wp-options或者數據庫占用過大,也是無法防御的,因為每一次訪問都會查詢數據庫,這個是沒法防御的。
這里講解一下原理,給大家提供思路,然后在分享一下關于wordpress防御CC攻擊的代碼,希望能夠幫助到大家!
CC攻擊原理
ddos必須知道對方ip才可以進行攻擊,攻擊模式多樣性,包括攻擊網站和網吧,以及對方電腦,我們可以通過cdn隱藏真實ip搞定,不過cc就是模擬用戶訪問了,這個沒法防御的,頂多別人攻擊量大的時候來個驗證碼訪問或者臨時封ip,不過只要你開啟了cdn或者像無作為這樣開啟了雙cdn防御基本都沒問題。
不過也有意外情況,大家可以通過這里分享的原理,去找出防御cc攻擊的方法,其原理如下:
cc攻擊模擬多個用戶訪問網站→網站內容被下載→像數據庫發送大量請求→cpu和帶寬占用率提高(或者長時間出現滿cpu,滿帶寬)→服務器資源被占用,用戶無法訪問。
這幾天無作為就是解決了數據庫的需求,精簡優化了數據庫,導致服務器資源占用減少,解決了問題。
wordpress防御cc攻擊代碼
將下面的防 cc 代碼加入到當前使用主題的 functions.php 中即可
//防止CC攻擊
session_start(); //開啟session
$timestamp = time();
$ll_nowtime = $timestamp ;
//判斷session是否存在 如果存在從session取值,如果不存在進行初始化賦值
if ($_SESSION){
$ll_lasttime = $_SESSION['ll_lasttime'];
$ll_times = $_SESSION['ll_times'] + 1;
$_SESSION['ll_times'] = $ll_times;
}else{
$ll_lasttime = $ll_nowtime;
$ll_times = 1;
$_SESSION['ll_times'] = $ll_times;
$_SESSION['ll_lasttime'] = $ll_lasttime;
}
//現在時間-開始登錄時間 來進行判斷 如果登錄頻繁 跳轉 否則對session進行賦值
if(($ll_nowtime - $ll_lasttime) < 3){ if ($ll_times>=5){
header("location:http://127.0.0.1");//可以換成其他鏈接,比如站內的404錯誤顯示頁面(千萬不要用動態頁面)
exit;
}
}else{
$ll_times = 0;
$_SESSION['ll_lasttime'] = $ll_nowtime;
$_SESSION['ll_times'] = $ll_times;
}
上面代碼中將鏈接換成:127.0.0.1的作用就是自己攻擊自己,因為127.0.0.1是本機的意思。