MailSure
← All posts
Security· 2 min read

How to stop fake signups on your SaaS

Fake accounts waste your resources and distort your metrics. A layered approach works better than any single trick.

Photo by VISHNU_KV on Pixabay

If your sign-up form is open to the internet, sooner or later it will be used by people and scripts that have no interest in your product. They inflate your numbers, burn your credits, abuse free trials and sometimes probe for weaknesses.

What fake signups look like

Think in layers

No single check stops everyone. Combine cheap layers so that each adds a little friction for abusers and almost none for real people.

1. Verify the email

Check the address when the form is submitted. This catches:

Use the API and treat invalid and disposable as reasons to reject.

2. Require email confirmation

A confirmation link proves the person controls the inbox. Don't give a trial any real value until it is clicked.

3. Rate-limit by IP and by address

Limit signups per IP per hour, and per email domain if you see abuse. Return a polite message, not an error stack.

4. Add a bot check

An invisible challenge or a simple honeypot field (a hidden input a human never fills in) stops a lot of dumb scripts. Use a challenge service that respects privacy and accessibility.

5. Watch behaviour

Flag accounts that sign up and immediately call your API at high volume, or create many resources fast. Hold them for review instead of letting them run.

6. Limit what a new account can do

Cap trial usage, delay features that cost you money, and require payment details before expensive actions.

Don't punish real users

Measure it

Track the share of signups that confirm email, activate and return within a week, before and after each change. If a layer cuts fakes without cutting real activation, keep it. Combine this with protecting your free trial.

Try it yourself

Keep reading