ddos是分布式拒絕服務,是一種常見的網路攻擊方式,如果被不壞好意的壞人盯上,我們該如何捍衛正當權益?
用一種雜湊演算法(演算法不是博主發明的,是國外某個大神發明的。博主只是記得有這麼個演算法,然後也忘記了名字。 乙個朋友今天下午請教我如何防止ddos攻擊的事情,因為忘記了演算法名字也不能搜尋原始碼,就索性用**實現一把。),可以實現一段時間內最多可登入一次,這樣就能有效扛住普通的ddos攻擊。
偽**如下(博主並沒有去make and test,需要的請自行去補全演算法):
#include
#define bucket_size 1024
unsigned
char tab1[bucket_size]
;unsigned
char tab2[bucket_size]
;unsigned
char tab3[bucket_size]
;unsigned
int tab1_stamp[bucket_size *8]
;unsigned
int tab2_stamp[bucket_size *8]
;unsigned
int tab3_stamp[bucket_size *8]
;unsigned
inthash1
(unsigned
int id)
unsigned
inthash2
(unsigned
int id)
unsigned
inthash3
(unsigned
int id)
/* *函式功能:判斷ip是否在10s內登入過?
*返回值: 3 一定沒有來過
*/int
judeg
(unsigned
int ip)
if(tab2_stamp[index2]
+10s < 當前時間戳)
if(tab3_stamp[index3]
+10s < 當前時間戳)
if( tab1[byte1]&(
1<< bit1)==0
)if( tab2[byte2]&(
1<< bit2)==0
)if( tab3[byte3]&(
1<< bit3)==0
)-return count;
}// 重新整理登錄檔
void
update_tabls
(unsigned
int ip)
/* *ddos防守:適用於一般的ddos攻擊。
把bucket_size設定的比較大後,就可以降低誤判率(對正常客戶端的誤判)。
把hash數量從3變成5,會加大計算量,但是可以降低誤判率(對演算法本身的誤判。3 / 4 / 5視情況而定)
*/int
main
(int agr,
char
**agrv)
else
}
補充一下,演算法名字叫布隆濾波器 DDoS攻擊介紹,如何防禦DDoS攻擊
分布式拒絕服務攻擊 ddos攻擊 是一種針對目標系統的惡意網路攻擊行為,ddos攻擊經常會導致被攻擊者的業務無法正常訪問,也就是所謂的拒絕服務。常見的ddos攻擊包括以下幾類 建議阿里雲使用者從以下幾個方面著手緩解ddos攻擊的威脅 優化業務架構,利用公共雲的特性設計彈性伸縮和災備切換的系統。提供餘...
DDOS和CC攻擊該如何有效防禦
一 常見的 攻擊有兩種 1.cc攻擊 也是流量攻擊的一種,cc就是模擬多個使用者 多少執行緒就是多少使用者 不停地進行訪問那些 需要大量資料操作 就是需要大量cpu時間 的頁面,造成伺服器資源的浪費,cpu長時間處於100 永遠 都有處理不完的連線直至就網路擁塞,正常的訪問被中止。2.流量攻擊 就是...
如何防禦ddos攻擊?
ddos攻擊是利用一批受控制的機器向一台機器發起攻擊,這樣來勢迅猛的攻擊令人難以防備,因此具有較大的破壞性。如果說以前網路管理員對抗dos可以採取過濾ip位址方法的話,那麼面對當前ddos眾多偽造出來的位址則顯得沒有辦法。所以說防範ddos攻擊變得更加困難,如何採取措施有效的應對呢?下面是一些對付它...