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.
- 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.
- Newsletter Optin Box plugin (noptin) (standalone forms).
- WooCommerce (Login form, Lost Password form).
- WPForms Lite.
- WP Job Manager plugin (submit job form when registering is enabled).
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 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.
- 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.
This plugin is compatible with ClassicPress.
This plugin is also available in Codeberg.
- Install the plugin through the admin page « Plugins ».
- Alternatively, unpack and upload the contents of the zipfile to your ‘/wp-content/plugins/’ directory.
- Activate the plugin through the ‘Plugins’ menu in WordPress.
- That’s it.
The plugin itself is released under the GNU General Public License. A copy of this license can be found at the license homepage or in the la-sentinelle.php file at the top.
Why is there no « best » or « perfect » antispam solution?
Spam is a social problem, while antispam solutions are technical. There is no way that a technical solution to a social problem will have a 100% perfect match ratio on spam with a 0% perfect match ratio on real messages.
I get false positives
You could go to your form page, right click on the page, select « Inspect Element » > Console-tab. Reload the page and see if there are errors in your console.
I am being targeted by a spammer
That is unfortunate. The default spamfilters in this plugin only protect against general spambots that are targeting any form on any website.
First thing you can do is enable the ‘Stop Forum Spam’ spamfilter, that should help against most human spammers and targeted attacks, though only for default forms in WordPress Core.
If that doesn’t help, I advise to add an extra plugin in the form of OOPSpam, that should provide a good defense against human spammers and targeted attacks.
Contributors & Developers
“La Sentinelle antispam” is open source software. The following people have contributed to this plugin.Contributors
“La Sentinelle antispam” has been translated into 3 locales. Thank you to the translators for their contributions.
Translate “La Sentinelle antispam” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
- Fix CSS for wp-comments form (thanks Barry).
- Fix CSS for wp-login.php (thanks Bonaldi).
- Remove support for EDD register during checkout, it breaks unexpectedly.
- Use ‘transform:translateY(10000px)’ instead of ‘display:none’, thanks ntodo.
- Fix warning in nonce check.
- Let WooCommerce comments of type ‘order_note’ pass by without an issue.
- Cleanup and have Easy Digital Downloads work okay again.
- Remove ‘la_sentinelle_check_registration_form_edd_action’ function.
- Disable spamfilters for Easy Digital Downloads for now, since on v3.1.1 it doesn’t work.
- Add workaround for Contact Form 7 refill, when caching is used.
- Also check honeypot field for missing field.
- Switch to text input with style ‘display:none’.
- Take more hints from phpcs.
- Update for new widget form in Noptin.
- Fix password reset on user profile admin page.
- Add support for WP Job Manager plugin (submit job / register).
- Add link to log to ‘At a Glance’ dashboard widget.
- Dependency for jquery should be an array.
- Fix error in date query on ‘shutdown’.
- Add support for WPForms Lite plugin.
- Add labels to settingspage for form plugins.
- Use ‘date() » instead of deprecated ‘strftime()’ function.
- Some updates from phpcs and wpcs.
- Security fix: use
sanitize_text_field()for log page.
- Update ‘uninstall.php’ with recent changes.
- Add link to open all spam submissions at once to log page.
- Support widget in Noptin as well.
- More compact content of spam submissions.
- Save spam submissions of plugin forms.
- Add admin page to view and delete these spam submissions.
- Remove old spam submissions as well, if option is enabled.
- Add support for Newsletter Optin Box plugin (noptin).
- Fix handler for Caldera Forms.
- Some updates from phpcs and wpcs.
- Remove checks from EDD purchase form when user is logged in already.
- Support Easy Digital Downloads plugin again. Login form only as non-AJAX.
- Fix form submission when using http on a https website or viceversa.
- Only filter on $_POST requests.
- Better check on Nonce length.
- Fix registering at multisite installs.
- Fix login filter for XMLRPC.
- Drop support for Easy Digital Downloads, they do not allow plugins to hook into them since 2.9.24.
- Add text for Clean Login to settingspage.
- Really have Stop Forum Spam disabled by default.
- Add Stop Forum Spam as spamfilter (disabled by default).
- Add options for everest and sfs to uninstall.php.
- Support Everest Forms plugin.
- Add container div around form fields.
- Use ‘intval()’ for all statistics.
- Use ‘_n()’ instead of ‘esc_html__()’ for formatting numbers.
- Run timeout function only once.
- Remove function ‘la_sentinelle_timout_clock’.
- Add uninstall.php file to uninstall options from db.
- Use classes, not ids for input fields.
- Add support for Clean Login (only login form for now).
- Set Nonce by default as disabled.
- Support new wp_initialize_site action for multisite.
- Rewrite error messages for Contact Form 7.
- Use esc_html functions everywhere.
- Add support for Caldera Forms plugin.
- Add support for Easy Digital Downloads plugin.
- Add support for Formidable plugin.
- Remove unneeded option to enable for Contact Form 7.
- Rewrite functions for statistics.
- Only show statistics for active plugin.
- Add some accessibility fixes.
- Don’t use transients for hashed field names, is faster this way.
- Add review link to admin page.
- Fix register form.
- Add more statistics.
- Refactor WooCommerce hooks into WordPress hooks.
- Add counter for comments blocked.
- Add option to save or not save spam comments (default is save).
- Change timeout from 3s to 1s.
- Only load admin code on admin pages.
- Fix admin login.
- Add settings for each supported form.
- Support WooCommerce forms (Login form, Lost Password form).
- Add log as comment_meta for comment form.
- Add ‘li’ for spam comments to dashboard widget ‘Right Now’.
- Remove ‘la_sentinelle_preprocess_comment’ function, was unused.
- Add option to remove spam comments after 3 months.
- Show text when no supported plugins are installed.
- Show correct message on login form for timeout.
- Change timeout from 5s to 3s.
- Initial release