LG-14078: Rate-limit backup code attempts based on IP+user ID #11094
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.
🎫 Ticket
LG-14078
🛠 Summary of changes
Adds additional rate-limiting to the backup code sign-in MFA submission to limit attempts based on a combination of user and IP address.
Related: #10982
📜 Testing Plan
It will be helpful to adjust local configuration to simplify testing, e.g.
With this configuration, it's expected that the lockout would max at 24 hours, which would quickly be hit with an exponential factor of 4:
Throughout testing, you can reset your local throttle cache by flushing the Redis store, using
rails console
:Verify that you cannot make any backup code submissions past your 4th, and you're locked out for 24 hours:
👀 Screenshots