Forum Replies Created

Viewing 15 replies - 1 through 15 (of 348 total)
  • Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for the detailed report — this was a real bug and you nailed the root cause. We’ve fixed it in v5.7.8… soon to be released.

    https://github.com/Highfivery/zero-spam-for-wordpress/pull/397

    The issue was that our disallowed words check was scanning every field in the form submission, including Cloudflare Turnstile’s cf-turnstile-response token — a 1,000+ character random string. With short blocklist entries like _ugg (only 4 characters), a match inside that random string was almost guaranteed.

    In v5.7.8, we now automatically skip security token fields like cf-turnstile-response, g-recaptcha-response, and h-captcha-response during disallowed word checks. These fields are never user-typed content, so they should never have been scanned in the first place. We also added a developer filter (zerospam_excluded_fields) so any other CAPTCHA or token fields can be excluded too.

    On top of that, we added two new settings: “Allowed Words” (whitelist specific strings from the blocklist) and “Minimum Disallowed Word Length” (skip those tiny 3-4 character entries that cause the most trouble). You should now be able to safely enable the splorp blocklist check alongside Cloudflare Turnstile without any conflicts.

    Please update and let us know if everything works as expected — we’re here if anything comes up!

    Also, if you get a chance, a quick review of the plugin on WordPress.org would mean a lot to us. Hearing from users like you is what keeps us motivated to keep improving the plugin and squashing issues fast. Thanks!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for reaching out and for the great suggestion! We’ve reviewed this and shipped a fix in v5.7.8 that addresses exactly what you described… soon to be released.

    https://github.com/Highfivery/zero-spam-for-wordpress/pull/397

    We added a new “Allowed Words” setting (under Settings > Zero Spam) where you can list specific words or strings — one per line — that should never be flagged as spam, even if they appear in the splorp blocklist. So if your email address or domain contains something like “ugg” or “cash” that happens to be on the list, just add that string to Allowed Words and it will be skipped during validation. This works across all form types (CF7, Gravity Forms, WPForms, Formidable, Fluent Forms) and WordPress comments.

    We also added a “Minimum Disallowed Word Length” setting that lets you skip very short blocklist entries entirely — those 3-4 character strings tend to cause the most false positives.

    Please update to v5.7.8 and let us know if you run into any issues — we’re happy to help!

    If you have a moment, we’d really appreciate it if you could leave a quick review of the plugin on WordPress.org. It goes a long way in keeping us motivated to continue developing new features and quickly addressing issues like this. Thank you!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Hi, thanks for reporting this — you’ve found a legitimate bug.

    What’s happening: The David Walsh module includes an AJAX key-refresh mechanism designed specifically for cached pages. When a visitor loads a cached page where the embedded key is older than 12 hours, the JavaScript fetches a fresh key from /wp-json/zero-spam/v5/davidwalsh-key. The endpoint itself is intentionally public (permission_callback => '__return_true'), so it should work fine for non-logged-in visitors.

    However, the AJAX request was also sending an X-WP-Nonce header with a nonce that was generated when the page was originally rendered. On cached pages, that nonce is stale by the time visitors load the page. WordPress core’s rest_cookie_check_errors() sees the invalid nonce and returns a 403 before the public permission callback is ever evaluated — which is why you’re seeing those 403 entries in your access logs.

    The fix: We’ve removed the unnecessary nonce header from the AJAX request. Since the endpoint is public by design (the key is already visible in the page HTML and is only useful with JavaScript execution), no authentication is needed. This fix will be included in v5.7.7.

    In the meantime, the 403s are harmless to your visitors — the JavaScript gracefully falls back to the key already embedded in the cached page HTML. Form submissions will still work as long as that embedded key hasn’t rotated out (the plugin accepts both the current and previous key to handle this). So your visitors aren’t being blocked from submitting forms; they’re just generating unnecessary 403 log noise.

    If you have a moment, we’d really appreciate it if you could leave a review on the WordPress plugin page. It helps us continue improving the plugin and honestly keeps us motivated to keep building it. Thanks!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for the feedback, both points are valid and we’ll improve the plugin’s UI to address them.

    1) Missing link to Project Honeypot You’re right, we should be linking directly to projecthoneypot.org from the settings section. We’ll add that.

    2) Finding your access key The key you need is the HTTP:BL Access Key — so yes, the “BL Access Key” you found is exactly what goes into the Zero Spam settings. Here’s how to find it:

    1. Log in at projecthoneypot.org
    2. Go to HTTP:BL Configuration (or navigate to Services → HTTP:BL from your dashboard)
    3. Your access key is displayed at the top — it’s a 12-character alphanumeric string
    4. Paste that key into the Access Key field in Zero Spam’s Project Honeypot settings

    We’ll update the plugin description to make this clearer and include a direct link to the HTTP:BL configuration page.

    If you have a moment, we’d really appreciate it if you could leave a review for Zero Spam on WordPress.org. Reviews help us reach more users, keep us motivated, and allow us to continue improving the plugin. Your feedback, whether it’s a feature request, a bug report, or just a thumbs up, makes a real difference. Thank you for your support!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Good catch — thanks for reporting this. The issue was caused by a docblock annotation we added to the set command that inadvertently restricted which flags WP-CLI would accept. We’ve removed it so the command works generically again:

    wp zerospam set --stop_forum_spam=enabled
    

    This will be included in a patch release shortly.

    Plugin Author Ben Marshall

    (@bmarshall511)

    Hey! Thank you for the detailed bug report — all three issues have been confirmed, diagnosed, and fixed in v5.7.5.

    Issue 1: Gravity Forms not blocking emails from blocked domains (e.g., jmailservice.com) This was a missing feature — Gravity Forms submissions were only checked against the honeypot and David Walsh techniques, but never validated against the blocked email domains list. v5.7.5 now iterates all submitted form fields and checks any email addresses against your blocked domains list. You’ll find a new “Check Blocked Email Domains” toggle in the Gravity Forms settings section. We also added this same check to Contact Form 7 and Formidable Forms for consistency.

    Issue 2: wp zerospam set --regenerate_honeypot not working The honeypot regeneration is an action, not a storable setting — the set command was just saving the flag text as a value rather than actually regenerating the honeypot key. This has been fixed in two ways:

    • wp zerospam set --regenerate_honeypot now correctly regenerates the honeypot key
    • A new dedicated command is also available: wp zerospam regenerate-honeypot

    Issue 3: wp zerospam set --blocked_email_domains="..." not working There was a storage mismatch — the CLI was writing the domains to the wrong option key, so the plugin never read them back. This has been fixed, and there’s also a new dedicated command with more flexibility:

    wp zerospam update-blocked-domains --domains="domain1.com,domain2.com"
    wp zerospam update-blocked-domains --file=/path/to/domains.txt
    wp zerospam update-blocked-domains --recommended
    wp zerospam update-blocked-domains --domains="newdomain.com" --append
    

    Additionally, this release includes security hardening for SQL injection prevention in database queries, a fix for an inverted email validation check in Fluent Forms, and new disallowed word checking across all form modules.

    Please update to v5.7.5 and let us know if you run into any further issues. If you have a moment, we’d really appreciate a review on WordPress.org — it goes a long way in keeping us motivated to continue improving the plugin.

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thank you for reaching out!

    Why Users Are Being Blocked

    Zero Spam uses multiple mechanisms that can block users from accessing your entire website:

    1. Manual IP/Location Blocks

    You or another administrator may have manually blocked:

    • Specific IP addresses
    • Entire countries
    • Regions/states
    • Cities
    • ZIP/postal codes

    2. Enhanced Protection (Zero Spam API)

    If you have a license key configured, this service checks visitor IPs against a spam database. Users are blocked when their IP has a “confidence score” of 30% or higher (default setting). This is the most common cause, especially those using VPNs or Tor.

    3. Stop Forum Spam

    This free service checks if visitor IPs appear in their spam database. Users are blocked when their IP has a confidence score of 50% or higher (default setting).

    4. Project Honeypot

    If you’ve configured an access key, this service checks IP threat scores. Users are blocked when their threat score is 50 or higher (default setting).Why Tor/VPN Users Get Blocked

    This is expected behavior. Tor exit nodes and VPN IP addresses are:

    • Shared by thousands of users worldwide
    • Frequently used for spam and malicious activity
    • Commonly listed in spam databases

    When you tested with Brave browser using Tor, you experienced this firsthand.

    How to Resolve This Issue

    Step 1: Identify What’s Blocking Users

    Go to WordPress Admin → Dashboard → Zero Spam → Log

    This shows you:

    • Which IP addresses are being blocked
    • The exact reason for each block (e.g., “High Confidence Score: 95%”, “blocked_country_code”, “Stop Forum Spam”)
    • When the blocks occurred

    Step 2: Whitelist Trusted IP Addresses

    If you know certain IPs belong to legitimate users:

    1. Go to Settings → Zero Spam → General
    2. Find the IP Whitelist field
    3. Add trusted IP addresses (one per line)
    4. Save changes

    Important: Whitelisted IPs bypass ALL security checks, so only add IPs you completely trust.Step 3: Adjust Detection Sensitivity

    Here’s how to make things lenient:

    Enhanced Protection (if enabled):

    • Go to Settings → Zero Spam → Enhanced Protection
    • Change Confidence Minimum from 30% to 60-70%
    • Higher numbers = fewer blocks, but potentially more spam

    Stop Forum Spam (if enabled):

    • Go to Settings → Zero Spam → Stop Forum Spam
    • Change Confidence Minimum from 50% to 70-80%

    Project Honeypot (if enabled):

    • Go to Settings → Zero Spam → Project Honeypot
    • Change Threat Score Minimum from 50 to 100-150

    Step 4: Remove Manual Blocks

    1. Go to Dashboard → Zero Spam → Blocked
    2. Check the IPs tab – remove any IP addresses that shouldn’t be blocked
    3. Check the Locations tab – remove any geographic blocks (countries, regions, cities, ZIPs)

    Step 5: Set Up Emergency Access

    To prevent being locked out yourself, add this to your wp-config.php

    define('ZEROSPAM_RESCUE_KEY', 'your-secret-key-here');

    Replace 

    your-secret-key-here

     with any random string. If you ever get blocked, access your site with:

    https://yoursite.com/?zerospam_rescue=your-secret-key-here

    Recommended Settings to Reduce False Positives

    Based on your situation, I recommend:

    • Enhanced Protection Confidence: 60% (instead of 30%)
    • Stop Forum Spam Confidence: 70% (instead of 50%)
    • Project Honeypot Threat Score: 100 (instead of 50%)
    • Geographic Blocking: Only block specific high-risk countries if absolutely necessary
    • IP Whitelist: Add your own IP and any known legitimate user IPs

    What About Tor/VPN Users?

    You have three options:

    1. Accept the limitation – Most legitimate users don’t browse via Tor. This may be acceptable for your use case.
    2. Reduce sensitivity significantly – Set all thresholds to 70%+ or disable IP reputation checks entirely. This will allow more Tor/VPN users through, but may also allow more spam.
    3. Disable IP-based blocking – Turn off Enhanced Protection, Stop Forum Spam, and Project Honeypot entirely. Rely only on form-level protection (the plugin has other techniques that don’t block site access).

    The key is finding the right balance between security and accessibility for your specific audience and needs.

    We’d greatly appreciate it if you could leave us a review on WordPress.org!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thank you so much for reporting this issue! You were absolutely right – the email notification system was sending thousands of emails when network settings changed, causing server resource issues and email provider alerts.

    We’ve just released v5.7.3 which completely resolves this problem.

    You now have independent control over email notifications in Network Admin → Settings → Zero Spam Network → Notifications tab:

    • Weekly Summary Emails – Keep these if you want weekly reports
    • Settings Change Notifications – Disable this to stop the email flood

    Simply uncheck “Settings Change Notifications” and you won’t receive thousands of emails anymore when changing network-level settings.

    Please update and let us know if this resolves your issue!

    If this solves your problem, we’d really appreciate a review – it helps us continue developing features based on user feedback like yours.

    Thanks again for bringing this to our attention!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for the idea! We’d really appreciate it if you could take a moment to leave us a review! Your feedback helps us continue improving the plugin and helps other users discover it.

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thank you so much for reaching out and for pointing this out! You’re absolutely right that this should be easier to control.

    How to Disable It Now
    Currently, you can disable the weekly summary emails using one of these methods:

    Option 1: WP-CLI (Recommended)
    wp site option update zerospam_network_notifications_enabled false --networkOption

    Option 2: Add to wp-config.php
    Add this code to your wp-config.php file:

    // Disable Zero Spam weekly summary emails
    add_action('plugins_loaded', function() {
    if (is_multisite()) {
    update_site_option('zerospam_network_notifications_enabled', false);
    }
    }, 1);


    Option 3: Unschedule the Cron Event
    Add this to your theme’s functions.php or a custom plugin:

    // Unschedule Zero Spam weekly summary
    add_action(‘init’, function() {
    $timestamp = wp_next_scheduled(‘zerospam_network_weekly_summary’);
    if ($timestamp) {
    wp_unschedule_event($timestamp, ‘zerospam_network_weekly_summary’);
    }
    });

    Great News! 🎉
    Thanks to your feedback, version 5.7.2 (coming soon) will include a brand new Notifications tab in the Network Settings page where you can easily toggle weekly summary emails on or off with a simple checkbox—no code required!

    To access it in v5.7.2:

    1. Navigate to Network Admin → Settings → Zero Spam Network
    2. Click the Notifications tab
    3. Toggle “Enable weekly summary emails” on or off
    4. Click Save Settings

    If you’re finding Zero Spam helpful for protecting your network, we’d really appreciate it if you could take a moment to leave us a review! Your feedback helps us continue improving the plugin and helps other users discover it.

    Thanks again for bringing this to our attention, your input directly led to this improvement!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for the detailed report and for putting together a suggested implementation, super helpful.

    You’re exactly right: the current integration uses IPinfo’s Legacy endpoint (ipinfo.io/{ip}), which is capped at 50,000 requests/month on the free tier and can lead to widespread 429 “Quota Exceeded” responses once that limit is hit.

    We’ve updated the IPinfo module to use the Lite API endpoint instead (api.ipinfo.io/lite/{ip}?token=…), which is the unlimited option for authenticated free-tier tokens. We also added persistent caching to reduce API calls further, and removed the vendor dependency in favor of the native WordPress HTTP API.

    This change will be included in v5.7.2.

    Also, if you have a minute, we’d really appreciate a quick review on WordPress.org, it helps a ton with visibility and lets other site owners know the plugin is actively maintained.

    Thanks again, we’re always here to help. Just reply if you have any questions.

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for reporting this! We identified the issue causing those PHP warnings and have released a fix in version 5.7.1.

    Please update to the latest version and let us know if you run into any other trouble.

    If you have a quick moment, we’d really appreciate a plugin review.

    Cheers!

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thanks for reporting this. Version 5.6.2 has just been released with the fix. Update the plugin and the issue should be resolved.

    If you still see problems after updating, email us directly at info @ zerospam.org for quicker responses so we can help determine your specific issue.

    If you have a moment and find Zero Spam helpful, we’d appreciate a review on WordPress.org. For even stronger protection with priority support, check out our Enhanced Protection subscription.

    Thanks for using Zero Spam.

    Plugin Author Ben Marshall

    (@bmarshall511)

    Thank you for reaching out regarding the login page blocking issue. I understand how frustrating it can be when you’re unexpectedly blocked from your own website.

    Understanding the “IP flagged as spam/malicious” message:

    This message can appear for several reasons, and in most cases, it’s actually a legitimate security response rather than a plugin error. The Zero Spam plugin uses multiple layers of protection to keep your site secure, and sometimes legitimate users can trigger these protections.

    Common causes and how to resolve:

    1. Check your site’s Zero Spam Log (Admin Dashboard → Zero Spam → Log):
    – Look for your blocked login attempt
    – Check the “Failed” column to see the specific reason
    – This will tell you exactly which protection triggered the block

    2. Whitelist your IP address (Settings → Zero Spam → Settings):
    – Scroll to “IP Whitelist”
    – Add your IP address (one per line)
    – Save settings
    – This ensures you’ll never be blocked again

    3. Check if you’re manually blocked (Dashboard → Zero Spam → Blocked):
    – Search for your IP address
    – If found, click to remove the block
    – Your IP may have been previously flagged and added to the blocked list

    4. Verify third-party protection services:
    – The plugin integrates with Zero Spam Enhanced Protection, Stop Forum Spam, and Project Honeypot
    – These services maintain global databases of suspicious IPs
    – If you’re on a shared network, VPN, or your ISP recently changed your IP, you might be temporarily flagged
    – You can adjust the “Confidence Minimum” thresholds in each service’s settings to reduce false positives

    5. JavaScript-based protection (David Walsh technique):
    – Go to Settings → Zero Spam → David Walsh
    – Verify the protection is working correctly
    – If you have JavaScript disabled, use browser privacy tools, or have aggressive ad blockers, this can cause false positives
    – You can temporarily disable this protection to test

    Need more help?

    For faster, personalized support, please email us directly at info@zerospam.org with:

    • Your website URL
    • Your IP address (you can find this at https://whatismyipaddress.com/)
    • The exact error message you’re seeing
    • Details from your Zero Spam Log (if accessible)

    This will allow us to investigate your specific situation and provide targeted assistance.

    Consider Zero Spam Enhanced Protection:

    If you haven’t already, I’d encourage you to check out our Enhanced Protection subscription. Subscribers receive:

    • Priority support for faster issue resolution
    • Access to our advanced real-time IP reputation network
    • Enhanced detection accuracy with lower false positives
    • Direct assistance from our security team

    Plugin Review:

    We noticed you may not have left a review yet. If Zero Spam has been protecting your site effectively, we’d really appreciate if you could leave us a 5-star review. Your feedback helps other WordPress users discover reliable security solutions!

    P.S. The good news is that if you’re being blocked, it means the plugin is actively working to protect your site! Once we identify why you’re being blocked, we can easily whitelist you while maintaining security for your site.

      Plugin Author Ben Marshall

      (@bmarshall511)

      Great question! When you enable the WooCommerce registration protection, it applies to both:

      1. The standalone registration form (e.g., on the My Account page)
      2. Account creation during checkout (when a customer checks “Create an account?”)

      The protection uses non-intrusive methods like honeypot fields and JavaScript validation that are invisible to legitimate customers—so there’s no need to worry about it interfering with your checkout process. Real customers completing purchases normally won’t be affected.

      If you’d like extra peace of mind, you can enable the “Log Blocked Registrations” option in the WooCommerce settings section. This will let you monitor any blocked attempts and ensure there are no false positives on your site.

      Let me know if you have any other questions!

    Viewing 15 replies - 1 through 15 (of 348 total)