一、簡介
DDOS(Distributed Denial of Service)的縮寫,中文意思是“分布式拒絕服務(wù)“攻擊。其是由于攻擊者利用大量肉雞(slave)對攻擊目標(biāo)發(fā)動大量請求、導(dǎo)致目標(biāo)主機耗盡資源或網(wǎng)絡(luò)資源,從而導(dǎo)致被攻擊的目標(biāo)主機不能為合法用戶提供服務(wù)。對于一些大型活動(短時有大量用戶訪問的),需要做好 DDOS 防范,以及對自身網(wǎng)站服務(wù)做好擴容的工作。

二、防范
1.驗證碼
驗證碼是我們在互聯(lián)網(wǎng)十分常見的技術(shù)之一。不得不說驗證碼是能夠有效地防止多次重復(fù)請求的行為。目前來說,隨著驗證碼方式的豐富化,導(dǎo)致黑客們沒有一個比較有效的方式來獲取和識別驗證碼。但由于驗證碼會影響到用戶體驗,因此驗證碼只有在比較重要的入口才會使用,如轉(zhuǎn)賬和登陸的場景。
2.限制請求頻率(ratelimit)
限制請求頻率是我們最常見的針對 DDOS 攻擊的防御措施。其原理為設(shè)置每個客戶端的請求頻率的限制。簡單來說,就是通過一些標(biāo)識(如 IP 與 Cookie)來定位一個客戶端,如果該客戶端的請求在一定時間內(nèi)過于頻繁。則對該客戶端之后的請求都重定向到一個出錯的頁面或者封殺相關(guān) IP。
當(dāng)然許多框架都會有相應(yīng)地限制請求頻率的工具包,如 koa 框架便可以使用下面這些:
3.擴容加帶寬
簡單來說就是,增加機器增加服務(wù)帶寬。只要超過了攻擊流量便可以避免服務(wù)癱瘓。在雙十一活動或者12306 搶車票等場景時,網(wǎng)站服務(wù)都會對自己的機器進行擴容和提高帶寬。然而為了避免由于使用過多機器導(dǎo)致成本太高且浪費的情況。通常來說都是根據(jù)網(wǎng)站活動和請求情況來實施相應(yīng)擴容操作。
4.其他的方法
事實上還有許多其他的方法,根據(jù)不同情況都有相應(yīng)的效果
- 設(shè)置自己的業(yè)務(wù)為分布式服務(wù),防止單點失效
- 使用主流云系統(tǒng)和 CDN(云和 CDN 其自身有 DDOS 的防范作用)
- 優(yōu)化資源使用提高 web server 的負載能力
三、更多閱讀
網(wǎng)上有許多 DDOS 的帖子,大家感興趣可以閱讀下: