Merge pull request #7039 from coollabsio/andrasbacsai/fix-login-rate-limit-bypass

fix: prevent login rate limit bypass via spoofed headers
This commit is contained in:
Andras Bacsai authored and GitHub committed 2025-10-28 12:16:34 +01:00
commit 65c2b917db
2 files changed
+175 -2

No files matched your search

+8 -2
View File
@@ -127,13 +127,19 @@ class FortifyServiceProvider extends ServiceProvider
});
RateLimiter::for('forgot-password', function (Request $request) {
return Limit::perMinute(5)->by($request->ip());
// Use real client IP (not spoofable forwarded headers)
$realIp = $request->server('REMOTE_ADDR') ?? $request->ip();
return Limit::perMinute(5)->by($realIp);
});
RateLimiter::for('login', function (Request $request) {
$email = (string) $request->email;
// Use email + real client IP (not spoofable forwarded headers)
// server('REMOTE_ADDR') gives the actual connecting IP before proxy headers
$realIp = $request->server('REMOTE_ADDR') ?? $request->ip();
return Limit::perMinute(5)->by($email.$request->ip());
return Limit::perMinute(5)->by($email.'|'.$realIp);
});
RateLimiter::for('two-factor', function (Request $request) {