-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Improve CAPTCHA section in credential stuffing prevention cheat sheet #1871
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 3 commits
0a3eda7
e07d3c2
d8d25d2
4bd31dc
c4110b6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -56,9 +56,20 @@ It must be emphasised that this **does not** constitute multi-factor authenticat | |
|
|
||
| ### CAPTCHA | ||
|
|
||
| Requiring a user to solve a "Completely Automated Public Turing test to tell Computers and Humans Apart" (CAPTCHA) or similar puzzle for each login attempt can help to identify automated/bot attacks and help prevent automated login attempts, and may slow down credential stuffing or password spraying attacks. However, CAPTCHAs are not perfect, and in many cases tools or services exist that can be used to break them with a reasonably high success rate. Monitoring CAPTCHA solve rates may help identify impact to good users, as well as automated CAPTCHA breaking technology, possibly indicated by abnormally high solve rates. | ||
| Requiring a user to solve a "Completely Automated Public Turing test to tell Computers and Humans Apart" (CAPTCHA) or similar puzzle for each login attempt can help to identify automated/bot attacks and help prevent automated login attempts, and may slow down credential stuffing or password spraying attacks. | ||
|
|
||
| To improve usability, it may be desirable to only require the user solve a CAPTCHA when the login request is considered suspicious or high risk, using the same criteria discussed in the MFA section. | ||
| Traditional CAPTCHAs use image recognition or text-based challenges, but have become ineffective against sophisticated bots, create usability and accessibility barriers, rely on behavioral profiling, and may not meet modern privacy standards. In many cases, tools or services exist that can be used to break them with a reasonably high success rate. | ||
|
|
||
| Ideally, prefer modern CAPTCHA services that: | ||
|
|
||
| - use cryptographic or [proof-of-work](https://friendlycaptcha.com/insights/controlling-variance-in-proof-of-work-algorithms/) challenges as they make automation economically impractical while requiring little to no input from legitimate users; | ||
| - scale the difficulty of the challenge when the request is considered suspicious or high risk; | ||
| - comply with accessibility standards (e.g., WCAG, ADA, EAA) and avoid relying on visual or auditory cues that can exclude users with disabilities; | ||
| - comply with applicable privacy regulations (e.g., CCPA, GDPR) and do not depend on tracking, fingerprinting, or behavioral profiling; | ||
|
|
||
| Modern CAPTCHAs include open source self-hosted options like [mCaptcha](https://mcaptcha.org/), as well as hosted services with an open source client like [Procaptcha](https://prosopo.io/) or [Friendly Captcha](https://friendlycaptcha.com/). | ||
|
||
|
|
||
| CAPTCHAs are one layer of protection, so your credential stuffing prevention strategy should also include MFA, rate limiting, and breached-credential checks. | ||
|
|
||
| ### IP Mitigation and Intelligence | ||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.