RubyGems 導覽選單
指南

為什麼你會看到 429 回應?

負載平衡器速率限制

為了保護 RubyGems.org 服務免於遭到蓄意或非蓄意的濫用,我們對部分端點實施了速率限制。有些端點有時可能會被我們的 CDN 快取,因此,可能會允許較高的請求速率。以下是速率限制規則的一般準則。

  • API 和網站:每秒 10 個請求
  • 相依性 API:每秒 15 個請求

應用程式速率限制

我們使用 rack-attack 來限制嘗試對登入、註冊和 MFA 端點進行暴力破解的客戶端。此外,我們會對傳送電子郵件的端點進行速率限制,以防止濫用我們的付費電子郵件服務。當你觸發其中一個應用程式速率限制時,你會在回應中看到 Retry-After 標頭,其中包含速率限制重設前的秒數。除非另有說明,否則所有速率限制都針對客戶端 IP。

每 10 分鐘有 100 個請求的端點速率限制

  • 使用者登入 - POST /session
  • 使用者註冊 - POST /users
  • 密碼重設要求 - POST /passwords
  • 個人資料更新 - PATCH /profile
  • 個人資料刪除 - DELETE /profile
  • 電子郵件確認要求 - POST /email_confirmations

具有指數遞減的速率限制

在單一時間視窗內無法暴力破解您的 MFA 碼。然而,當在一段時間內嘗試暴力破解時,攻擊者至少猜中一次碼的機會會增加。您可以 在此處 閱讀更多相關資訊,並 在此處 查看我們的遞減週期計算。下列端點的速率限制為 每 5 分鐘 300 個請求每 25 小時 600 個請求

  • 登入時進行 OTP 驗證 - POST /session/mfa_create
  • 密碼重設時進行 OTP 驗證 - POST /users/:user_id/password/mfa_edit
  • 註冊新的 MFA 裝置 - POST /multifactor_auth
  • 更新或停用 MFA 等級 - PUT /multifactor_auth
  • 撤銷寶石 - DELETE /api/v1/gems/yank
  • 新增擁有者 - POST /api/v1/gems/:rubygem_id/owners
  • 移除擁有者 - DELETE /api/v1/gems/:rubygem_id/owners
  • 顯示 API 金鑰 (gem signin) - GET /api/v1/api_key

寶石推送速率限制

POST /api/v1/gems 有下列兩個速率限制

  • 每小時 400 個請求
  • 對於失敗請求(回應狀態不為 200),每 5 分鐘 300 個請求,每 25 小時 600 個請求。

其他速率限制

  • 10 個要求/10 分鐘在 gem yank 上 - DELETE /api/v1/gems/yank
  • 100 個要求/10 分鐘/電子郵件或使用者名稱在登入時 - POST /session
  • 100 個要求/10 分鐘/電子郵件或使用者名稱在 API 金鑰顯示時 - GET /api/v1/api_key
  • 10 個要求/10 分鐘/電子郵件在密碼重設要求時 - POST /passwords
  • 10 個要求/10 分鐘/電子郵件在電子郵件確認要求時 - POST /email_confirmations

RubyGems.org 團隊可能會偶爾將使用者 IP 位址加入黑名單,以保護平台。如果您認為自己遇到這種情況,請寄電子郵件至 support@rubygems.org,我們將很樂意查看。