面對普通ddos攻擊該如何防守?

2021-10-08 17:52:55 字數 1525 閱讀 1694

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攻擊變得更加困難,如何採取措施有效的應對呢?下面是一些對付它...