Skip to content

The Anti-Spam Module

The Anti-Spam module helps reduce automated abuse by combining CAPTCHA checks, IP blocking, disposable email detection, Stop Forum Spam lookups, and a hidden signup honeypot field.

Use these protections together. CAPTCHA and honeypot checks help block automated signups, while IP and email checks help block repeated abusive traffic.

Anti-spam checks run before several public and client actions:

ProtectionApplies To
IP blockingClient signup, public ticket opening, client profile updates, client login, admin login
CAPTCHAClient signup and public ticket opening
Stop Forum SpamClient signup and public ticket opening
Disposable email detectionClient signup and public ticket opening
HoneypotClient signup

Enable IP Blocking to reject requests from known abusive IP addresses.

Add one IP address per line in the blocked IP list:

203.0.113.10
2001:db8::10

Blocked IP addresses cannot log in, register, update client details, or open public tickets.

Enable CAPTCHA to require visitors to complete a verification challenge before submitting protected public forms.

FOSSBilling supports these providers:

ProviderRequired SettingsNotes
Google reCAPTCHA v2Site key, secret keyShows a visible reCAPTCHA challenge
Google reCAPTCHA v3Site key, secret key, minimum scoreUses a score from 0.0 to 1.0; higher thresholds are stricter
Cloudflare TurnstileSite key, secret keyUses Cloudflare's CAPTCHA alternative
hCaptchaSite key, secret keyUses hCaptcha verification

Get provider keys from the provider's dashboard:

For reCAPTCHA v3, FOSSBilling compares Google's score with the configured minimum score. The default is 0.5.

  • Lower values allow more submissions but may let more spam through
  • Higher values block more suspicious submissions but may reject legitimate users
  • Keep the value between 0.0 and 1.0

Enable Stop Forum Spam to check submitted IP and email details against the Stop Forum Spam database before signup or public ticket creation.

If Stop Forum Spam reports a submitted username, email address, or IP address as abusive, FOSSBilling rejects the request.

Enable Disposable Email Protection to reject email addresses from temporary or throwaway email domains.

FOSSBilling downloads the disposable domain list from the FakeFilter project and caches it for 24 hours. If the list cannot be downloaded, FOSSBilling retries later and does not block addresses from an empty list.

Enable Honeypot Protection to add a hidden field to the signup form. Most people never fill this field, but simple bots often do.

The default honeypot field name is bio. If the field is submitted with a value, FOSSBilling rejects the registration and records an informational log entry.

Change the field name if you suspect bots are learning to ignore the default field.

For most production installations:

  1. Enable a CAPTCHA provider and confirm the site key and secret key are correct
  2. Keep disposable email protection enabled
  3. Keep honeypot protection enabled
  4. Enable Stop Forum Spam and make sure your server can make outbound requests to stopforumspam.com
  5. Use IP blocking for repeat offenders, not as the only spam control
  • Check that the selected provider matches the keys you entered
  • Verify that the site key is allowed for your billing domain in the provider dashboard
  • Confirm your server can make outbound HTTPS requests to the provider verification endpoint
  • For reCAPTCHA v3, try lowering the minimum score if legitimate users are being rejected
  • Disable disposable email protection temporarily to confirm whether it is the cause
  • Ask the user for a non-disposable email address
  • Check whether the domain appears in the FakeFilter list
  • Review the blocked IP list and remove stale entries
  • If FOSSBilling is behind a reverse proxy, configure trusted proxies correctly so FOSSBilling sees the real visitor IP. See Configuration File.

Signups Fail Without a Visible CAPTCHA Error

Section titled “Signups Fail Without a Visible CAPTCHA Error”
  • Check whether honeypot protection is enabled
  • Review logs for the message Potential spam registration blocked
  • Change the honeypot field name if bots are targeting the default field