fix(auth): add rate limiting to authentication endpoints to prevent brute force attacks #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Implements IP-based rate limiting on authentication endpoints (
/api/auth/loginand/api/auth/register) to protect against brute force attacks.Fixes #13
Changes Made
/api/auth/loginand/api/auth/registergolang.org/x/timedependency for rate limitingConfiguration
Implementation Details
Testing
Run the rate limiter tests:
go test ./internal/middleware/ratelimiter/Test manually with rapid requests:
for i in {1..15}; do curl -X POST http://localhost:8080/api/auth/login
-H "Content-Type: application/json"
-d '{"email":"[email protected]","password":"password123"}'
-w "\nStatus: %{http_code}\n"; doneExpected: First 10 requests succeed, remaining get HTTP 429
Security Impact
Breaking Changes
None - This is a backward-compatible security enhancement.