網站遇到CC攻擊的防護辦法有哪些?
發布時間:2018-09-11 10:36:32 瀏覽次數:
4666
CC攻擊的防護沒那么簡單的,偽裝手段也是千萬變化,據我所知360網站衛士沒有你說的那么好的效果,貼篇月光博客文章給你看好了:網站防止CC攻擊的方法節選下內容: 開始我想使用某某網站衛士來預防攻擊,從界面上看,似乎是防止了大量的CC攻擊,但登錄網站后發現,流量依舊異常,攻擊還是依舊,看起來這個網站衛士的效果并沒有達到。 從原理上看,基本上所有的防火墻都會檢測并發的TCP/IP連接數目,超過定數目定頻率就會被認為是Connection-Flood。但如果IP的數量足夠大,使得單個IP的連接數較少,那么防火墻未必能阻止CC攻擊。 不僅如此,我還發現,啟用了某某網站衛士之后,反而更容易被CC攻擊,因為這個網站衛士并不能過濾掉CC攻擊,攻擊的IP經過其加速后,更換成為這個網站衛士的IP,在網站服務器端顯示的IP都是相同的,導致服務器端無法過濾這些IP。
通常發起CC攻擊是使用專門的攻擊工具,同時模擬成多個用戶,向目標網站發起多個請求,般這些軟件為了防止地址被屏蔽,還內置通過代理攻擊的功能。可以通過多個代理服務器對目標發起攻擊,使封IP的防御方式變的失效。防御思路因為CC攻擊通過工具軟件發起,而普通用戶通過瀏覽器訪問,這其中就會有某些區別。想辦法對這二者作出判斷,選擇性的屏蔽來自機器的流量即可。初級普通瀏覽器發起請求時,除了要訪問的地址以外,Http頭中還會帶有Referer,UserAgent等多項信息。遇到攻擊時可以通過日志查看訪問信息,看攻擊的流量是否有明顯特征,比如固定的Referer或UserAgent,如果能找到特征,就可以直接屏蔽掉了。中級如果攻擊者偽造了Referer和UserAgent等信息,那就需要從其他地方入手。攻擊軟件般來說功能都比較簡單,只有固定的發包功能,而瀏覽器會完整的支持Http協議,我們可以利用這點來進行防御。先為每個訪問者定義個字符串,保存在Cookies中作為Token,必須要帶有正確的Token才可以訪問后端服務。當用戶第次訪問時,會檢測到用戶的Cookies里面并沒有這個Token,則返回個302重定向,目標地址為當前頁面,同時在返回的Http頭中加入set cookies字段,對Cookies進行設置,使用戶帶有這個Token。客戶端如果是個正常的瀏覽器,那么就會支持http頭中的set cookie和302重定向指令,將帶上正確的Token再次訪問頁面,這時候后臺檢測到正確的Token,就會放行,這之后用戶的Http請求都會帶有這個Token,所以并不會受到阻攔。客戶端如果是CC軟件,那么般不會支持這些指令,那么就會直被攔在外層,并不會對服務器內部造成壓力。高級高級點的,還可以返回個網頁,在頁面中嵌入JavaScript來設置Cookies并跳轉,這樣被偽造請求的可能性更小Token生成算法Token需要滿足以下幾點要求1,每個IP地址的Token不同 2, 無法偽造3, 致性,即對相同的客戶端,每次生成的Token相同Token隨IP地址變化是為了防止通過臺機器獲取Token之后,再通過代理服務區進行攻擊。致性則是為了避免在服務器端需要存儲已經生成的Token。推薦使用以下算法生成Token,其中Key為服務器有的保密字符串,這個算法生成的Token可以滿足以上這些要求。Token = Hash( UserAgent + client_ip + key )
來源:本站 編輯:普通管理員