From 88a81aac41a33c4842aa9d0928743da40329d3aa Mon Sep 17 00:00:00 2001 From: Hank Date: Thu, 11 Jun 2026 17:37:19 +0800 Subject: [PATCH] =?UTF-8?q?docs(openspec):=20=E5=90=8C=E6=AD=A5=20login-ra?= =?UTF-8?q?te-limiting=20=E8=A6=8F=E6=A0=BC=E9=96=80=E6=AA=BB=E8=87=B3?= =?UTF-8?q?=E5=AF=A6=E4=BD=9C=E5=80=BC=2010/min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 規格原寫 5/min,實作與測試(commit 0dabc4e)皆為 throttle:10,1, 以實作為準消除規格漂移,並註記放寬理由(帳號鎖定已涵蓋暴力破解防護)。 Co-Authored-By: Claude Fable 5 --- openspec/specs/login-rate-limiting/spec.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openspec/specs/login-rate-limiting/spec.md b/openspec/specs/login-rate-limiting/spec.md index 426330f..3b2cfb8 100644 --- a/openspec/specs/login-rate-limiting/spec.md +++ b/openspec/specs/login-rate-limiting/spec.md @@ -1,14 +1,14 @@ ## ADDED Requirements ### Requirement: 登入頻率限制 -後端 SHALL 對所有登入端點套用 IP-based 頻率限制,超過限制時回傳 HTTP 429。Member 與 Provider 每 IP 每分鐘最多 5 次;Admin 因影響範圍更廣,限制為每 IP 每分鐘最多 3 次。 +後端 SHALL 對所有登入端點套用 IP-based 頻率限制,超過限制時回傳 HTTP 429。Member 與 Provider 每 IP 每分鐘最多 10 次(原定 5 次;帳號鎖定機制上線後已涵蓋暴力破解防護,放寬以容納共享 IP 場景,與實作 `throttle:10,1` 一致);Admin 因影響範圍更廣,限制為每 IP 每分鐘最多 3 次。 #### Scenario: Member / Provider 正常登入不受影響 -- **WHEN** 同一 IP 在 1 分鐘內對 `/api/member/login` 或 `/api/provider/login` 送出 5 次以內的請求 +- **WHEN** 同一 IP 在 1 分鐘內對 `/api/member/login` 或 `/api/provider/login` 送出 10 次以內的請求 - **THEN** 請求正常處理,回傳對應的登入結果(200 成功或 401 失敗) #### Scenario: Member / Provider 超過頻率限制 -- **WHEN** 同一 IP 在 1 分鐘內送出第 6 次 member 或 provider 登入請求 +- **WHEN** 同一 IP 在 1 分鐘內送出第 11 次 member 或 provider 登入請求 - **THEN** 回傳 HTTP 429,並帶有 `Retry-After` header 指示等待時間 #### Scenario: Admin 超過頻率限制