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

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

khara-woods-ZlZZLjuibeQ-unsplash.jpg

什么是速率限制?

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

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

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

蠻力攻擊

DoS和DDoS攻擊

網(wǎng)頁抓取

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

限速如何運(yùn)作?

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

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

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

什么是IP地址?

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

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

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

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

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

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

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

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

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

因?yàn)樗俾氏拗茖τ诜乐惯@些蠻力攻擊是必要的,所以忘記密碼的用戶可能會與惡意機(jī)器人一起受到速率限制。用戶可能會看到"太多的登錄嘗試"消息,并提示他們在指定的時間范圍之后再次嘗試,或者被告知他們完全被鎖定在帳戶之外。

速率限制如何用于API?

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

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

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

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

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

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

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

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

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

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

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

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Cloudflare,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家