Cloudflare:什么是 Rate Limiting(速率限制)?

來源: Cloudflare
作者:Cloudflare
時間:2021-03-08
18423
速率限制是用于限制網(wǎng)絡(luò)流量的策略。它限制了某人可以在特定時間范圍內(nèi)重復(fù)執(zhí)行某操作的頻率(例如,嘗試登錄一個帳戶)。速率限制可以幫助阻止某些類型的惡意機器人活動 。它還可以減少Web服務(wù)器上的壓力。但是,速率限制不是管理機器人活動的完整解決方案。

khara-woods-ZlZZLjuibeQ-unsplash.jpg

什么是速率限制?

速率限制是用于限制網(wǎng)絡(luò)流量的策略。它限制了某人可以在特定時間范圍內(nèi)重復(fù)執(zhí)行某操作的頻率(例如,嘗試登錄一個帳戶)。速率限制可以幫助阻止某些類型的惡意機器人活動 。它還可以減少Web服務(wù)器上的壓力。但是,速率限制不是管理機器人活動的完整解決方案。

通過速率限制可以阻止哪些類型的漫游器攻擊?

速率限制通常用于防護惡意機器人對網(wǎng)站或應(yīng)用程序產(chǎn)生負面影響。速率限制可以幫助防止的機器人攻擊包括:

蠻力攻擊

DoS和DDoS攻擊

網(wǎng)頁抓取

速率限制還可以防止API過度使用,雖然它不一定存在惡意或由于機器人活動引起,但是防止API濫用仍然很重要。

限速如何運作?

速率限制在應(yīng)用程序中運行,而不是在Web服務(wù)器本身運行。通常,速率限制追蹤請求的來源IP地址以及每個請求之間經(jīng)過多少時間。IP地址是應(yīng)用程序識別發(fā)出請求的人員或?qū)ο蟮闹饕绞健?/span>

速率限制解決方案測量每個IP地址發(fā)出的每個請求之間的時間,還會測量指定時間范圍內(nèi)的請求數(shù)量。如果在給定的時間內(nèi)來自單個IP的請求太多,則限速解決方案將在一定時間內(nèi)拒絕滿足IP地址的請求。

本質(zhì)上,受速率限制的應(yīng)用程序會向正在快速發(fā)送請求的個別用戶說"嘿,慢一點"。這相當(dāng)于警察要求超速的駕駛員??柯愤?,或者父母告訴孩子在這么短的時間內(nèi)不要吃太多糖果。

什么是IP地址?

IP地址是分配給連接到互聯(lián)網(wǎng)任何設(shè)備的唯一數(shù)字標(biāo)識符(或在IPv6中為字母數(shù)字)。只要設(shè)備在線,每個設(shè)備都會擁有自己的IP地址,就像實際的街道地址或電話號碼一樣,這使設(shè)備能夠來回發(fā)送消息。傳統(tǒng)的(IPv4)地址如下所示:198.41.129.1

對于用戶設(shè)備,IP地址通常不是永久不變的,因為IPv4中沒有足夠的IP地址。相反,用戶的互聯(lián)網(wǎng)服務(wù)提供商(ISP)將在設(shè)備連接到互聯(lián)網(wǎng)時動態(tài)分配地址。

速率限制解決方案可以使用IP地址作為確定哪些設(shè)備發(fā)出過多請求的基礎(chǔ),進而會暫時將其阻止。

速率限制如何與用戶登錄一起使用?

如果用戶嘗試在短時間內(nèi)進行過多次失敗登錄,則可能會發(fā)現(xiàn)自己的賬戶被鎖定。當(dāng)網(wǎng)站設(shè)置了登錄速率限制,就會發(fā)生這種情況。

這種預(yù)防措施的存在,不是要為了挫敗忘記密碼的用戶,而是阻止蠻力攻擊,它是指機器人嘗試數(shù)千個不同的密碼,以猜測正確的密碼并侵入帳戶。如果機器人每小時只能進行 3 或 4 次登錄嘗試,則從統(tǒng)計上講,此類攻擊不太可能成功。

登錄頁面上的速率限制可以針對嘗試登錄的用戶的IP地址或其用戶名。理想情況下會采用兩者的結(jié)合,因為:

如果僅通過IP地址應(yīng)用速率限制,則暴力攻擊者可以通過嘗試從多個IP地址登錄(可能使用僵尸網(wǎng)絡(luò) )來繞過此限制。

如果僅應(yīng)用于用戶名,那么擁有已知用戶名列表的任何攻擊者通過同一個IP地址可以使用這些用戶名嘗試各種常用密碼,并且很可能成功闖入至少幾個帳戶,。

因為速率限制對于防止這些蠻力攻擊是必要的,所以忘記密碼的用戶可能會與惡意機器人一起受到速率限制。用戶可能會看到"太多的登錄嘗試"消息,并提示他們在指定的時間范圍之后再次嘗試,或者被告知他們完全被鎖定在帳戶之外。

速率限制如何用于API?

API或應(yīng)用程序編程接口是一種從程序請求功能的方法。 API對大多數(shù)用戶是不可見的,但是對于應(yīng)用程序正常運行而言,它們至關(guān)重要。例如,餐館的網(wǎng)站可以依靠預(yù)訂服務(wù)的API來讓客戶能夠在線進行預(yù)訂用餐。或者,電子商務(wù)平臺可以整合運輸公司的API,為用戶提供準(zhǔn)確的運輸成本。

每次API響應(yīng)請求時,該API的所有者都必須為計算時間付費:這是表示碼運行并產(chǎn)生對該API請求的響應(yīng)所需的服務(wù)器資源。在上面的示例中,每當(dāng)餐廳顧客進行預(yù)訂時,餐廳的API集成將使表預(yù)訂服務(wù)為計算時間收費。

因此,任何為開發(fā)人員提供API的應(yīng)用程序或服務(wù)都將限制每個唯一用戶每小時或每天可進行多少次API調(diào)用。這樣,第三方開發(fā)人員就不會過度使用API。

速率限制還可以激勵開發(fā)人員為利用API付出更多的費用:通常,他們?yōu)锳PI服務(wù)付出的費用越高,能調(diào)用的API服務(wù)也就越多。

API的速率限制也有助于防御惡意的機器人攻擊。攻擊者可以使用機器人對API進行多次重復(fù)調(diào)用,從而使該服務(wù)無法提供給其他任何人,或者使服務(wù)完全崩潰。這是一種DoS或DDoS攻擊。

Twitter和Instagram等社交媒體平臺如何使用速率限制?

社交媒體平臺速率限制基本上只是API速率限制。例如,任何集成Twitter的第三方應(yīng)用程序每小時有刷新查找新推文或消息的頻率上限。 Instagram對第三方應(yīng)用程序有類似的限制。這就是為什么用戶偶爾會遇到"超過速率限制"消息的原因。

這些限制通常不適用于直接使用社交媒體平臺的用戶。

機器人管理和速率限制有什么區(qū)別?

速率限制基本上是一個維度:它雖然有用,但只能防止非常特定類型的機器人活動。此外,速率限制不僅適用于機器人,而且通常還用于用量限制。 例如,Cloudflare Rate Limiting 可以抵御DDoS攻擊、API濫用和蠻力攻擊,但不一定能緩解其他形式的惡意機器人活動,也不能區(qū)分好機器人和壞機器人。

相比之下,機器人管理通常可以整體檢測機器人活動。例如, CloudFlare 機器人管理用機器學(xué)習(xí)來分辯可能的機器人,這使它能夠阻止更廣泛的各種機器人攻擊(像憑證填充、垃圾信息發(fā)布、庫存囤積等)。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Cloudflare,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
個人VIP