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