速率限制可封鎖過度使用或濫用 Web 資產的使用者、機器人或應用程式。速率限制可以阻止某些類型的機器人攻擊。
閱讀本文後,您將能夠:
複製文章連結
速率限制是一種限制網路流量的策略。它限制了某人在特定時間範圍內重複一個動作的頻率——例如,嘗試登入帳戶。速率限制有助於阻止某些類型的惡意機器人活動。它還可以減輕網頁伺服器的壓力。但是,速率限制不是管理機器人活動的完整解決方案。
速率限制通常用於阻止惡意機器人對網站或應用程式產生負面影響。速率限制可以協助緩解的機器人攻擊包括:
限速還可以防止 API 過度使用,雖然它不一定存在惡意或由於機器人活動引起,但是防止 API 濫用仍然很重要。
速率限制在應用程式內執行,而不是在 Web 伺服器本身上執行。通常,速率限制基於追蹤請求來源的 IP 位址,並追蹤每個請求之間經過的時間。IP 位址是應用程式識別發出請求的人員或對象的主要方式。
速率限制解決方案測量來自每個 IP 位址的每個請求之間的時間量,並測量指定時間範圍內的請求數。如果在給定的時間範圍內來自某個 IP 的請求過多,則速率限制解決方案將在一定時間內不會滿足該 IP 位址的請求。
從本質上講,速率受限的應用程式會對快速發出請求的唯一使用者說「嘿,慢點」。這相當於警察攔下超出道路限速的司機,或者父母告訴他們的孩子不要在這麼短的時間內吃那麼多糖果。
IP 位址是指派給連接到網際網路的任何裝置的唯一數字(或在 IPv6 中為英數字元)識別碼。只要每個裝置處於在線狀態,它就會有自己的 IP 位址,就像實際街道地址或電話號碼一樣,這使裝置能夠來回傳送訊息。傳統 (IPv4) 位址如下所示:198.41.129.1
對於使用者裝置,IP 位址通常不是永久性的,因為在 IPv4 中沒有足夠的 IP 位址可供使用。使用者的網際網路服務提供者 (ISP) 將在裝置連接到網際網路時動態分配位址。
速率限制解決方案可以基於 IP 位址來確定哪些裝置發出了太多請求,應暫時封鎖。
如果使用者在短時間內太多次嘗試登入失敗,則可能會發現自己被鎖定在帳戶之外。當網站設定了登入速率限制時,就會發生這種情況。
此預防措施的存在不是為了讓忘記密碼的使用者感到沮喪,而是為了封鎖暴力攻擊。在進行暴力攻擊時,機器人將嘗試數千個不同的密碼以猜測正確的密碼並入侵帳戶。如果機器人每小時只能進行 3 或 4 次登入嘗試,那麼這種攻擊在統計上不太可能成功。
登入頁面上的速率限制可以根據嘗試登入的使用者的 IP 位址或使用者的使用者名稱而套用。理想情況下,它將使用兩者的組合,因為:
由於速率限制對於防止此類暴力攻擊是必要的,因此不記得其密碼的使用者可能會與惡意機器人一起受到速率限制。使用者可能會看到「登入嘗試次數過多」之類的訊息,並被提示在指定時間範圍之後重試,或者被告知他們完全被鎖定在帳戶之外。
API(應用程式程式設計介面)是一種從程式請求功能的方法。API 對大多數使用者是不可見的,但它們對於應用程式正常運作非常重要。例如,餐廳的網站可以依靠餐桌預訂服務的 API 使客戶能夠線上預訂。或者,電子商務平台可以整合運輸公司的 API,為使用者提供準確的運輸成本。
每次 API 回應請求時,該 API 的擁有者都必須為運算時間付費:程式碼執行和產生對該 API 請求的回應所需的伺服器資源。在上面的範例中,每當餐廳客戶進行預訂時,餐廳的 API 整合將導致餐桌預訂服務為運算時間付費。
因此,任何為開發人員提供 API 的應用程式或服務都會限制每個唯一使用者每小時或每天可以進行的 API 呼叫次數。這樣,第三方開發人員就不會過度使用 API。
速率限制還可以激勵開發人員為利用 API 支付更多費用:通常他們只能進行一定次數的 API 呼叫,只有支付更多才能繼續使用 API 服務。
對 API 的速率限制還有助於防止惡意機器人攻擊。攻擊者可以使用機器人對 API 進行多次重複呼叫,從而導致其他任何人都無法使用該服務,或使服務完全崩潰。這是一種 DoS 或 DDoS 攻擊。
社交媒體平台限速通常只是 API 限速。例如,整合 X(前身為 Twitter)的任何第三方應用程式每小時只能重新整理一定次數來查看新貼文或訊息。Instagram 對第三方應用程式也有類似的限制。這就是為什麼使用者偶爾會看到「超出限速」訊息的原因。
速率限制是相當單一的:雖然有用,但它只能阻止非常特定類型的機器人活動。此外,速率限制不僅適用於機器人,還適用於限制一般用途。例如,Cloudflare Rate Limiting 可以防止 DDoS 攻擊、API 濫用和暴力攻擊,但它不一定能緩解其他形式的惡意機器人活動,也不能區分善意機器人和惡意機器人。
相比之下,機器人管理通常可以全面偵測機器人活動。例如,Cloudflare 機器人管理使用機器學習來識別可能的機器人,這使其能夠封鎖更廣泛的機器人攻擊(如憑證填充、垃圾內容發佈、庫存囤積等)。小型組織還可以使用 Cloudflare Pro 和商業方案中提供的 Super Bot Fight Mode 來封鎖惡意機器人。