2022-10-02 分類: 網(wǎng)站建設(shè)
前言
傳統(tǒng)的 DDOS 防御通常使用“硬抗”的方式,導(dǎo)致開銷很大,而且有時(shí)效果并不好。例如使用 DNS 切換故障 IP 的方案,由于域名會(huì)受到緩存等因素的影響通常有分鐘級(jí)延時(shí),前端難以快速生效。例如使用 CDN 服務(wù),雖可抵擋大多網(wǎng)絡(luò)層攻擊,但對(duì)應(yīng)用層攻擊卻常有疏漏,攻擊者可通過惡意請(qǐng)求消耗流量、日志存儲(chǔ)等費(fèi)用,導(dǎo)致欠費(fèi)停止服務(wù)。例如購買流量清洗等服務(wù),雖然效果不錯(cuò)但費(fèi)用十分昂貴。
今天分享一種超低成本的網(wǎng)站 DDOS 防御方案 —— 不使用任何后端防御服務(wù),純前端實(shí)現(xiàn)!當(dāng)然效果也非常極端:如果用戶之前未訪問過該網(wǎng)站,這種防御不會(huì)生效,網(wǎng)站被打垮仍無法訪問;但如果用戶之前訪問過該網(wǎng)站,之后即可無視攻擊,甚至服務(wù)器關(guān)機(jī)網(wǎng)站也能訪問,并且還能更新!前端代理
說到低成本、防攻擊、離線訪問等特性,大家可能會(huì)想到 Cloudflare 服務(wù)。不過前面提到,我們不使用后端防御,而是純前端實(shí)現(xiàn)。
事實(shí)上,我們可以把 Cloudflare 搬到瀏覽器前端!這里不得不提 HTML5 中的一個(gè) API ——Service Worker,它能攔截當(dāng)前站點(diǎn)產(chǎn)生的所有請(qǐng)求,并能控制返回結(jié)果,相當(dāng)于一個(gè)反向代理服務(wù)。有了這個(gè)黑科技,即可在前端實(shí)現(xiàn) CDN 功能。
我們可為靜態(tài)資源準(zhǔn)備多個(gè)站點(diǎn)做冗余備份,當(dāng) Service Worker 加載資源出錯(cuò)時(shí),可不返回錯(cuò)誤給上層頁面,而是繼續(xù)從備用站點(diǎn)加載,直到獲得正確結(jié)果才返回。這樣,只要有一個(gè)備用站點(diǎn)可用,資源就不會(huì)加載失敗。攻擊" src="/upload/pic18/cf3e86818bb2.jpg" width="690" height="171">
注意,這不是重定向,地址欄不會(huì)有變化。
因此即使網(wǎng)站被打垮,之前訪問過的用戶仍可通過 Service Worker 從備用站點(diǎn)加載頁面,從而正常訪問。免費(fèi)節(jié)點(diǎn)
使用冗余站點(diǎn)雖能提升穩(wěn)定性,但攻擊者仍可對(duì)備用站點(diǎn)發(fā)起攻擊,尤其是惡意消耗流量費(fèi)用的攻擊,導(dǎo)致成本大幅上升。
為此,我們還可使用一種更極端的方案 —— 使用免費(fèi) CDN 作為備用站點(diǎn),例如 jsdelivr.net、unpkg.com、IPFS Gateway 等等,圖片則可上傳到各大網(wǎng)站的相冊(cè)。通過控制臺(tái)可見,雖然當(dāng)前站點(diǎn)無法連接,但通過 Service Worker 仍能從備用站點(diǎn)加載頁面!接口防御
對(duì)于純靜態(tài)資源的站點(diǎn),我們可將所有資源甚至包含 HTML 文件都通過免費(fèi) CDN 加速,從而大幅降低成本、增加穩(wěn)定性。
但對(duì)于動(dòng)態(tài)接口,又該如何實(shí)現(xiàn)防御?動(dòng)態(tài)接口的防御要復(fù)雜一些,但仍有一些巧妙的方案。例如通過云防火墻和 Service Worker 使用約定的算法生成端口號(hào),從而不斷更換端口攔截攻擊流量;例如代理到多個(gè)云主機(jī)廠商“薅”免費(fèi)額度的防御流量;例如通過最便宜的搶占式主機(jī)購買大量公網(wǎng) IP。。。細(xì)節(jié)下回講解。
當(dāng)然即使不考慮動(dòng)態(tài)接口,網(wǎng)站被打垮后仍能訪問靜態(tài)內(nèi)容,只是無法交互,相比完全打不開要好得多。
當(dāng)前文章:低成本防御網(wǎng)站DDOS攻擊
網(wǎng)站網(wǎng)址:http://m.rwnh.cn/news19/200569.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、建站公司、靜態(tài)網(wǎng)站、網(wǎng)站制作、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容