AntiSpam for Contact Form 7
Are you unsatisfied with your current antispam solution for Contact Form 7? It might be using an ineffective method to combat the specific type of bot attacks you’re facing. Fortunately, I have a solution for you! Antispam for Contact Form 7 is a simple yet highly effective plugin that protects your mailbox from bot flooding. Say goodbye to tedious configurations and captchas, which often lead to reduced conversions and inconvenience for genuine users. Our plugin utilizes a combination of on-page and off-page bot traps, along with an auto-learning mechanism powered by a statistical “Bayesian” spam filter called B8. CF7-AntiSpam seamlessly integrates with Flamingo and enhances its functionality. When both plugins are installed, Flamingo gains additional controls, and an extra dashboard widget is enabled. SETUP Basic – Install and go! No configuration, keys, or registrations are required to activate the antispam protection. In this case, some protections, such as fingerprinting, language checks, and honeypots, will be enabled. Advanced – For CF7A to properly analyze the email content using its dictionary, it needs to parse the input message field of your form. To notify the antispam to check this field, you’ll need to add a “marker” to each contact form on your website. Simply add ‘flamingo_message: “[your-message]”‘ in the additional settings panel of each contact form you want to secure. This process follows the same method used with Flamingo. While this step may seem tedious, it is required for advanced text statistical analysis. Without it, the B8 filter cannot be enabled. GeoIP – (Optional) If you need to restrict which countries or languages can email you, you can enable this functionality. To enable GeoIP, you’ll need to agree to the GeoLite2 End User License Agreement and sign up for GeoLite2 Downloadable Databases. This will provide you with the required key to download the database. For detailed instructions, please refer to the dedicated section in the cf7-antispam plugin settings. Antispam Available Tests ✅ Browser Fingerprinting ✅ Language checks (Geo-ip, http headers and browser) ✅ Honeypot ️✅ Honeyform* ✅ Domain Name System Blackhole List (DNSBL) ✅ Blocklists (with automatic ban after N failed attempts, user defined ip exclusion list) ✅ Hidden fields with encrypted unique hash ✅ Time elapsed (with min/max values) ✅ Prohibited words in message/email and user agent ✅ B8 statistical “Bayesian” spam filter ✅ High Entropy / Gibberish checks ✅ Identity protection ✅ Webmail protection Extends Flamingo and turns it into a spam manager! With this plugin, you can now review emails and train B8 to identify spam and legitimate messages. This feature proves useful, especially during the initial stages when some spam emails may slip through. Already using Flamingo? Even better! Just remember to add ‘flamingo_message: “[your-message]”‘ to the advanced settings (similar to other Flamingo labels) before activating the plugin. Alternatively, you can explore the advanced options and select “rebuild dictionary.” Upon activating CF7A, all previously collected emails will be parsed, and B8 will learn and develop its vocabulary. This pre-trained algorithm gives you a head start. How cool is that? Additional Notes: – A new column has been added to the right side of the Flamingo inbound page, displaying the level of spaminess for each email. – If you unban an email on the Flamingo “inbound” page, the corresponding IP will be removed from the blocklist. However, marking an email as spam will not blocklist the IP again. – Before activating this plugin, please make sure to mark all spam emails as spam in the Flamingo inbound section. This auto-training process will help the B8 algorithm. – If you receive a spam message, please avoid deleting it from the “ham” section. Instead, place it in the spam section to teach B8 how to differentiate between spam and legitimate messages. B8 statistical “Bayesian” Filter Originally created by Gary Robinson b8 is a statistical “Bayesian” spam filter implemented in PHP. The B8 filter is a foundational example of Machine Learning (ML) for text classification, representing an early, yet powerful, statistical approach in Natural Language Processing (NLP). This approach precedes feature-weighting methods like TF-IDF, which in turn paved the way for modern deep learning architectures, such as Transformers and GPT. The filter tells you whether a text is spam or not, using statistical text analysis. What it does is: you give b8 a text and it returns a value between 0 and 1, saying it’s ham when it’s near 0 and saying it’s spam when it’s near 1. See How does it work? for details about this. To be able to distinguish spam and ham (non-spam), b8 first has to learn some spam and some ham texts. If it makes mistakes when classifying unknown texts or the result is not distinct enough, b8 can be told what the text actually is, getting better with each learned text. This takes place on your own server without relying on third-party services. More info: nasauber.de Identity protection To fully protect the forms, it may be necessary to enable a couple of additional controls, because bots use the public data of the website to spam on it. – The first is user related and denies those who are not logged in the possibility of asking (sensitive) information about the user via wp-api and the protection for the xmlrpc exploit wordpress. – The second one is the WordPress protection that will obfuscate sensitive WordPress and server data, adding some headers in order to enhance security against xss and so on. Will be hidden the WordPress and WooCommerce version (wp_generator, woo_version), pingback (X-Pingback), server (nginx|apache|…) and php version (X-Powered-By), enabled xss protection headers (X-XSS-Protection), removes rest api link from header (but it will only continue to work if the link is not made public). Mailbox Protection (Multiple Send) Enhance email security by enabling the “Multiple Send” feature, which prevents consecutive email submissions to the user’s mailbox. This measure is effective in thwarting automated spam attempts and ensures a secure communication environment. Security & Privacy: A Local-First Approach AntiSpam for Contact Form 7 is built with your security and privacy as the top priority. Unlike many modern anti-spam solutions that rely on external cloud services or third-party subscriptions, our plugin is designed to run entirely on your own WordPress installation. 100% Local Processing: All anti-spam logic, checks, and data processing are performed directly on your server. No data is ever sent to, or stored by, any external third-party service (including ours). Not a Software as a Service (SaaS): This plugin is a standalone, self-contained software solution, not an interface to a paid or subscription-based external service. Once installed, it works autonomously. Enhanced Security: Since there is no central server or external API endpoint to communicate with, your website is immune to potential risks associated with centralized services, such as Single Point of Failure or data breach risks. You retain complete control and ownership over the security of your Contact Form 7 submissions. Privacy Notices AntiSpam for Contact Form 7 only processes the IP but doesn’t store any personal data directly from the user input. However, it creates a dictionary of spam and ham (non-spam) words in the WordPress database. This dictionary is built from words found in the submitted messages, meaning it may contain words that were part of the user’s e-mail message or personal data. This data is “degenerated,” which means the words might be normalized or altered before being stored. The sole purpose of this word collecting is to build a dictionary used for local, decentralized spam detection. Support Community support: via the support forums on wordpress.org Bug reporting (preferred): file an issue on GitHub Contribute We love your input! We want to make contributing to this project as easy and transparent as possible, whether it’s: Reporting a bug Testing the plugin with different user agent and report fingerprinting failures Discussing the current state, features, improvements Submitting a fix or a new feature We use GitHub to host code, to track issues and feature requests, as well as accept pull requests. By contributing, you agree that your contributions will be licensed under its GPLv2 License. My goal is to create an antispam that protects cf7 definitively without relying on external services. And free for everyone. if you want to help me, GitHub is the right place 😉 copyright AntiSpam for Contact Form 7, Copyright 2021 Codekraft Studio AntiSpam for Contact Form 7 is distributed under the terms of the GNU GPL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details. Resources Contact Form 7 and Flamingo © 2021 Takayuki Miyoshi,LGPLv3 or later B8 https://nasauber.de/opensource/b8/, © 2021 Tobias Leupold, LGPLv3 or later GeoLite2 license GeoIP2 PHP API GeoIP2-php chart.js https://www.chartjs.org/, © 2021 Chart.js contributors, MIT Sudden Shower in the Summer, Public domain, Wikimedia Commons https://commons.wikimedia.org/wiki/File:Sudden_Shower_in_the_Summer_(5759500422).jpg Contibutions Mirek Długosz – #30 fixes a crash that occurred when analysing flamingo metadata MeliEve – #42 Fix “internal_server_error” when message is empty MeliEve – #61 Handle deferrer script loading Zodiac1978 – #67 Remove warning for unsafe email configuration w/o protection JohnHooks – #66 Readme + plugin env sdellenb – #66 Fix $reason parameter for calling cf7a_ban_by_ip Special thanks This project is tested with BrowserStack. Browserstack MaxMind GeoIP2 This plugin on demand can enable GeoLite2 created by MaxMind, available from https://www.maxmind.com While enabled you may have to mention it in the privacy policy of your site, depending on the law regulating privacy in your state! * GeoIP2 databases GeoLite2 Country DNSBL servers privacy policies dnsbl-1.uceprotect.net www.uceprotect.net license dnsbl-2.uceprotect.net www.uceprotect.net license dnsbl-3.uceprotect.net www.uceprotect.net license dnsbl.sorbs.net sorbs.net license zen.spamhaus.org spamhaus.org license bl.spamcop.net spamcop.net license b.barracudacentral.org barracudacentral.org privacy-policy dnsbl.dronebl.org dronebl.org all.spamrats.com spamrats.com tos bl.ipv6.spameatingmonkey.net spameatingmonkey.net Inspirations, links Nikolai Tschacher incolumitas.com Antoine Vastel fp-scanner/fp-collect Niespodd niespodd Thomas Breuss tbreuss Domain Name System-based blackhole list wiki dnsbl list wiki
Top keywords
- spam20×1.15%
- b815×0.87%
- flamingo13×0.75%
- license12×0.69%
- net12×0.69%
- form11×0.64%
- antispam10×0.58%
- contact10×0.58%
- contact form10×0.58%
- email9×0.52%
- org9×0.52%
- protection9×0.52%
La Sentinelle antispam
Feel safe knowing that your website is safe from spam. La Sentinelle will guard your WordPress website against spam in a simple and effective way. It has antispam filters for comment forms and registration forms and can be extended to support plugins. The default settings should catch most spambots, and there is a settingspage to set it up according to your wishes. Current features include: 3 antispam features; Honeypot, Nonce, Form Timeout. These 3 spamfilters depend on JavaScript on the frontend. 1 antispam feature; Stop Forum Spam. Settingspage to set things up according to your wishes. Transparent to the visitor, no nagging with Captcha’s or other annoying things. By default no use of third-party services and no tracking of visitors. Lightweight and simple code. Logging for WordPress Comments and which spamfilter marked it as spam. Logging for Custom forms and which spamfilter marked it as spam. Statistics for every form how many spam submissions were blocked. WordPress forms that are protected: WordPress Comments form. WordPress Login form. WordPress Register form. WordPress Lost Password form. Form Plugins that are protected: Caldera Forms. Clean Login (Login form). Contact Form 7. Easy Digital Downloads (Login form, Register form). Everest Forms. Formidable Form Builder. Forminator. Newsletter Optin Box plugin (noptin) (standalone forms). Ultimate Member (Login form, Register form and Lost Password form). WooCommerce (Login form, Lost Password form). WPForms Lite. WP Job Manager plugin (submit job form when registering is enabled). Support If you have a problem or a feature request, please post it on the plugin’s support forum on wordpress.org. I will do my best to respond as soon as possible. If you send me an email, I will not reply. Please use the support forum. Translations Translations can be added very easily through GlotPress. You can start translating strings there for your locale. They need to be validated though, so if there’s no validator yet, and you want to apply for being validator (PTE), please post it on the support forum. I will make a request on make/polyglots to have you added as validator for this plugin/locale. How to choose an antispam plugin When you look through the WordPress Plugin Repository you will see more than a hundred antispam plugins. Which one is the best one? Short answer, there is no “best one”. No spamfilter and no method for spamfiltering is perfect. Slightly longer answer, you could try about twenty and choose the one that fits your needs best. But there is also a really long answer. There are different methods that can be used against spam, and every method has its drawbacks. In my opinion, having a low number of false positives is more important than perfectly marking all spam, you don’t want to miss out on important people or information. Nagging the user in some way has a similar effect, the user might not even want to bother with that and just walk away. Third party services: Services like Akismet, OOPSpam, Stop Forum Spam and also reCAPTCHA offer third party services to check for spam. This can be very effective, but you are giving user submitted data away to these third parties and are also giving your users up for tracking them. Captcha’s, reCAPTCHA and Quizz Questions: You are annoying your users and probably sending some of them away. This especially counts for reCAPTCHA for visitors who have third party cookies disabled. Blacklists: Often running behind the facts. That goes for the way of getting users off that list, and also in getting users on that list. Referer check: check if the Referer header is set correctly. You can never trust it is set correctly. Modern browsers are limiting the use of Referers, though for now that is mostly for third-party domains. JavaScript methods: Spammers often (always?) don’t use JavaScript, they just post the form with spammy data. Drawback for this method is that statistics say that about 1 percent of users has JavaScript disabled. Also, some websites have broken JavaScript, which might make the spamfilter break as well. Activation email for registering users. Users only get activated after clicking a link in an activation email. You still have all the non-activated users in your site however. You could have a bright idea about combining several methods, but then you get the drawbacks of all the methods you use. Another complication of choosing a good plugin is that most antispam plugins don’t tell you what methods they use. The documentation doesn’t tell you, and looking at the source code just leaves you confused at the chaos that it often is. My main motivation for writing this plugin is to offer a plugin that does spamfiltering with JavaScript methods in a simple and effective way. The claimed 1 percent of users that has JavaScript disabled will also be tech-savy enough to enable it again for your website. Compatibility This plugin is compatible with ClassicPress. Contributions This plugin is also available in Codeberg.