指南
為什麼你會看到 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,我們將很樂意查看。