WP Manifestindependent plugin directory
manifest / security / dahu-signup-guard

Dahu Signup Guard

Keep spam registrations out without a captcha

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/dahu-concept/dahu-signup-guard/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Keeps spam registrations out without a captcha.

Developed and maintained by Hugo Vial-Jaime — Dahu-Concept.

The idea

Open registration and the fake accounts start arriving. The usual answer is a captcha, which asks every real visitor to prove themselves because a few of them are not people.

This plugin asks the visitor nothing. A field they never see is added to the form; an attempt that fills it in is a bot. Alongside that, two blocklists refuse the usernames and email domains you never want to see.

Features

  • Honeypot, named differently on every site so a bot written against this plugin cannot recognise and skip it
  • Username blocklist — plain text, one entry per line, matched anywhere, ignoring case
  • Email blocklist — same, on the address
  • Plus aliases — optionally refuse name+anything@gmail.com, only on providers that collapse them to one mailbox
  • Log of the last 200 refused attempts

Applies to the WordPress registration form and to WooCommerce's when it is active. WooCommerce is not required.

Requirements

WordPress 6.0 or later
PHP 7.4 or later
WooCommerce optional

Addresses and privacy

The log records the visitor's address, anonymised by default: the last octet of an IPv4 address and the last 80 bits of an IPv6 one are zeroed. Enough to recognise a repeat offender's network, not enough to single out a person. Storing the full address is a setting you turn on knowingly.

Proxy headers such as X-Forwarded-For are not trusted by default. They are set by the client unless a proxy in front of the site overwrites them, so believing them out of the box means anyone can write whatever address they like into your log — worse than having no address at all.

// Trust a header, only if a proxy you control sets it on every request.
add_filter( 'dahu_signup_guard_trusted_ip_headers', function () {
    return array( 'HTTP_CF_CONNECTING_IP' );
} );

Filters

Filter Purpose
dahu_signup_guard_trusted_ip_headers $_SERVER keys trusted for the visitor's address. Empty by default.
dahu_signup_guard_plus_alias_domains Domains on which a + alias is refused. Gmail and Googlemail by default.

External services

None. Nothing is sent anywhere; everything recorded stays in your own database.

License

MIT — see LICENSE.