網站(博客)被不知道是誰的惡意攻擊了連續幾次,還說會一直下去,不知該怎麼辦啊
如果你的網站是使用的是Nginx做的反向代理,那麼可以利用Nginx原生的limit_req模塊來針對請求進行限制,(ngx_http_limit_req_module 模塊)
當然,也可以使用tengine的limit_req模塊,對官方模塊進行了增強(The Tengine Web Server)
或者還有一個比較高端的模塊:(yaoweibin/nginx_limit_access_module 路 GitHub), 作者是,姚神@大青蛙
CC攻擊原理
攻擊者控制某些主機不停地發大量數據包給對方伺服器造成伺服器資源耗盡,一直到宕機崩潰。CC主要是用來攻擊頁面的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候,打開網頁就慢了,CC就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數據操作(就是需要大量CPU時間)的頁面,造成伺服器資源的浪費,CPU長時間處於100%,永遠都有處理不完的連接直至就網路擁塞,正常的訪問被中止。
CC攻擊防禦策略
1.取消域名綁定
取消域名綁定後Web伺服器的CPU能夠馬上恢復正常狀態,通過IP進行訪問連接一切正常。但是不足之處也很明顯,取消或者更改域名對於別人的訪問帶來了不變,另外,對於針對IP的CC攻擊它是無效的,就算更換域名攻擊者發現之後,攻擊者也會對新域名實施攻擊。
2.更改Web埠
一般情況下Web伺服器通過80埠對外提供服務,因此攻擊者實施攻擊就以默認的80埠進行攻擊,所以,可以修改Web埠達到防CC攻擊的目的。
3.IIS屏蔽IP
我們通過命令或在查看日誌發現了CC攻擊的源IP,就可以在IIS中設置屏蔽該IP對Web站點的訪問,從而達到防範IIS攻擊的目的。
CC攻擊的防範手段
1.優化代碼
儘可能使用緩存來存儲重複的查詢內容,減少重複的數據查詢資源開銷。減少複雜框架的調用,減少不必要的數據請求和處理邏輯。程序執行中,及時釋放資源,比如及時關閉mysql連接,及時關閉memcache連接等,減少空連接消耗。
2.限制手段
對一些負載較高的程序增加前置條件判斷,可行的判斷方法如下:
必須具有網站簽發的session信息才可以使用(可簡單阻止程序發起的集中請求);必須具有正確的referer(可有效防止嵌入式代碼的攻擊);禁止一些客戶端類型的請求(比如一些典型的不良蜘蛛特徵);同一session多少秒內只能執行一次。
3.完善日誌
儘可能完整保留訪問日誌。日誌分析程序,能夠儘快判斷出異常訪問,比如單一ip密集訪問;比如特定url同比請求激增。
面對來勢洶洶的CC攻擊,其實最好的方式還是選擇第三方的雲安全廠商(就像我們)來解決問題。