Published on 2026-02-19
Protect your signup endpoint with risk gates, rate limits, and step-up checks—so real users glide through and bots don’t scale.
Fake signups are rarely “just noise”. They inflate your top-of-funnel, drain email/SMS spend, pollute analytics, and create a handy launchpad for spam, referral abuse, and trial farming.
For product owners and developers, the goal isn’t “add a CAPTCHA”. It’s prevent fake signups in a way you can operate: measurable, adaptable, and friendly to real users.
OWASP categorises bulk automated registration as OAT-019: Account Creation — attackers creating accounts through your normal sign-up flow at scale (OWASP OAT-019).
That definition matters because it points you to the right defences: controls that manage interaction frequency and workflow integrity, not just a widget on the front end.
If you want fake signup prevention that survives modern automation (headless browsers, proxies, human-assisted flows), use a simple loop:
This is the same operating idea that score-based approaches popularised. For example, reCAPTCHA v3 returns a score so you can take different actions per interaction and verify the result server-side (reCAPTCHA v3 docs). Brand aside, the point is: don’t treat sign-up as a single yes/no gate.
POST /signup, not the UIBots are happy to skip your front end entirely. If your controls only live in the browser, you’re defending the wrong surface.
Put your bot signup protection where the account is actually created:
POST /signup (or your equivalent) with a server-side decision.Here’s what tends to work in real products, especially in combination.
Rate limiting is foundational for fake signup prevention. NIST’s digital identity guidance explicitly calls for rate limiting in the context of authentication attempts (NIST SP 800-63B). Sign-up isn’t login, but the principle holds: limit interaction frequency on high-value endpoints.
Make it practical by rate limiting on: - IP and ASN (to handle proxy rotation better) - device/session/browser profile (when you can) - identifier velocity (email/phone), with care for shared domains - rolling windows (burst limits in minutes + slow-burn limits over hours)
Good bot signup protection doesn’t treat every visitor like a suspect. You want the majority of humans to glide through.
Risk-based verification means: - Low risk → create the account normally - Medium risk → step-up (extra verification or reduced initial privileges) - High risk → block or throttle
This “allow / step-up / block” policy is easy to explain, easy to measure, and hard to mess up in production.
OWASP highlights “improper enforcement of behavioural workflow” as part of the account creation threat model (OWASP OAT-019). In plain terms: bots are often too consistent.
Signals that help: - impossibly fast completion times - identical field timing across many signups - repeated navigation paths (same sequence, same pauses) - browser integrity anomalies (missing APIs, inconsistent headers)
Use these as inputs to a score, not as brittle one-off rules.
This is the highest ROI move for product owners: make fresh accounts cheap, and verified accounts valuable.
Concrete examples: - Don’t issue API keys, trial credits, or export access until email verification. - Delay posting/DMs until basic reputation (verified email + account age + normal behaviour). - For referral programmes, only pay out after a downstream action (activation milestone, purchase, retained usage).
You’ll prevent fake signups by removing the incentive to automate them.
Attackers often funnel fake signups into disposable inboxes or addresses that never complete verification.
Operationally, focus on: - disposable/throwaway domain detection (as a risk signal, not a blanket ban) - sending limits and bounce rates (protect deliverability) - delaying costly sends (welcome sequences, invitations) until verification
This is less glamorous than “anti-bot AI”, but it saves real money.
If you want a plan that’s actually deliverable, ship this:
POST /signup.Track: - sign-up conversion rate (overall and by risk band) - step-up rate - verification pass/fail rate - time-to-complete sign-up - confirmed fake accounts per day (your real north star)
Example 1: SaaS free trial abuse You see 400 “new users” a day, but activation stays flat.
Example 2: Marketplace spam accounts Attackers create accounts to message users or post links.
Same principle, different “value action”.
Humans Only is built to prevent fake signups with risk-based verification that stays pleasant for real users and painful for automation.
It’s designed to be: - Fast (typically under 2 seconds) - Privacy-first (zero tracking) - Easy to integrate (drop-in) - Measurable (real-time analytics you can tune)
If your current approach is “CAPTCHA and hope”, upgrading to a risk gate + clear outcomes is the move that actually scales.
To prevent fake signups, defend the signup endpoint, rate limit with intent, use risk-based verification, and design your product so brand-new accounts don’t instantly unlock value.
That’s how you Stop Bots, Welcome Humans — without turning sign-up into a security project.
We use cookies to improve your experience and anonymously analyze usage.