WordPress OSINT, maintenance or security needs? Reach out!
TLDWP

Plugin: cf7-antispam (Used by 3,077 domains)

AntiSpam for Contact Form 7

πŸ‘€ Erik πŸ“¦ v0.7.5

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 (aka 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
βœ… 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

Inspirations, links

DomainExposuresHeadersLast Checked
c*r*m*n*g*.com (WP 6.5.8) βœ… F 2026-04-30 01:58:07
3*r*.de βœ… F 2026-04-30 01:57:21
t*e*i*h*r*j*h*s*o*i*n.com (WP 6.9.4) βœ… F 2026-04-30 01:42:05
f*a*c*c*l*e*a*i.com (WP 6.9.4) βœ… A 2026-04-30 00:40:05
f*a*c*-*a*l*g*r*.com (WP 6.9.4) βœ… A 2026-04-30 00:35:05
s*h*o*-*o*i*t*k.de (WP 6.9.4) βœ… A 2026-04-30 00:06:37
l*n*i*g*o*l*a*l*m*v*r*.com βœ… C 2026-04-29 23:26:49
m*n*r*h*o*t*a*t*r*.com (WP 6.9.4) βœ… F 2026-04-29 23:24:11
o*t*c*c*s*a*.com (WP 6.9.4) βœ… B 2026-04-29 23:12:04
c*r*e*-*n*f*s*i*n.com (WP 6.9.4) βœ… A 2026-04-29 23:03:24
t*e*f*t*u*.com (WP 6.9.4) βœ… F 2026-04-29 22:21:28
c*r*e*s*e*e*o*.com βœ… A 2026-04-29 22:13:24
o*a*p*n*.com (WP 6.9.4) βœ… D 2026-04-29 22:07:45
t*e*e*i*t*o*c*g*r*.com βœ… F 2026-04-29 22:05:07
a*a*e*s*l*n*n*w*l*n*s*.com βœ… F 2026-04-29 21:57:25
m*n*c*a*e*-*v*n*m*n*i*l.com βœ… F 2026-04-29 21:34:15
b*a*d*i*e.de βœ… F 2026-04-29 21:33:36
h*e*u*c*i*i*.com (WP 6.9.4) βœ… F 2026-04-29 21:26:50
c*r*i*l*g*e*q*i*o.com (WP 6.9.4) βœ… F 2026-04-29 20:50:38
d*r*l*c*m*r*i*l.com (WP 6.5.8) βœ… F 2026-04-29 20:42:35
v*n*r*a*.jobs βœ… B 2026-04-29 20:11:32
f*a*i*g*a*p*o*t*b*e*e*a*r.com βœ… C 2026-04-29 19:56:32
a*e*.network βœ… F 2026-04-29 19:52:55
a*e*.org βœ… F 2026-04-29 19:52:54
s*e*u*a*e*c*.fi βœ… F 2026-04-29 19:45:43
n*w*n*v.com (WP 6.9.4) βœ… F 2026-04-29 19:27:04
p*p*-*u*.ru βœ… F 2026-04-29 19:21:09
t*e*a*l*s*o*l*a*l*m*v*r*.com βœ… C 2026-04-29 19:06:40
c*c.ist (WP 6.8.1) βœ… F 2026-04-29 18:05:13
s*e*d*l*u*a*d*.com (WP 6.9.4) βœ… F 2026-04-29 17:50:21
v*s*l*a*o*l*a*l*r*p*i*.com βœ… C 2026-04-29 17:50:11
a*o*p*o*t*b*e*o*e*s.com βœ… C 2026-04-29 17:16:27
l*n*o*p*o*n*c*a*s.com βœ… C 2026-04-29 17:11:26
i*t*a*o*i*t*c*p*u*.com (WP 6.9.4) βœ… F 2026-04-29 16:43:11
e*l*n*.ee (WP 6.9.4) βœ… F 2026-04-29 16:41:31
n*t*l*e*s*a*l.de (WP 6.9.4) βœ… F 2026-04-29 16:34:20
t*e*u*e*a*t*r*.com βœ… D 2026-04-29 16:24:58
r*t*e*d*.com (WP 6.9.4) βœ… F 2026-04-29 16:24:58
s*d*l*.com (WP 6.9.4) βœ… F 2026-04-29 16:08:24
t*e*u*p*t*r.com βœ… F 2026-04-29 16:07:36
d*l*v*y*o*.ru βœ… F 2026-04-29 16:04:50
t*e*r*s*w*o*t*v*r*.com (WP 6.9.4) βœ… D 2026-04-29 15:39:22
m*g*a.gr πŸ”“ F 2026-04-29 15:34:06
m*l*e*-*r*n*e.com (WP 6.7.5) βœ… F 2026-04-29 15:06:45
h*s*-*t*g*.net βœ… F 2026-04-29 14:25:55
v*l*e*n*u*c*a*e*-*a*d*l*t.fr (WP 6.9.4) βœ… F 2026-04-29 13:50:06
s*c*a*e*t*p*o*t*b*e*e*a*r.com βœ… C 2026-04-29 13:34:12
s*c*a*e*t*p*o*t*b*e*o*i*g.com βœ… D 2026-04-29 13:34:12
s*c*a*e*t*p*o*t*b*e*n*t*l*e*s.com βœ… C 2026-04-29 13:34:12
c*r*a*s*u*i*.com (WP 6.9.4) βœ… F 2026-04-29 13:25:51
s*c*a*e*t*b*l*i*r*t*b*e*o*e*s.com βœ… C 2026-04-29 13:24:24
c*a*y*i*e.cfdtcasino.fr βœ… C 2026-04-29 13:06:43
c*a*m*o*.com (WP 6.9.4) βœ… F 2026-04-29 12:17:33
g*r*n*e.ffrandonnee.fr (WP 6.5.8) βœ… F 2026-04-29 11:53:22
c*p*a*n*o*e*p*z*a.com (WP 6.9.4) βœ… F 2026-04-29 11:40:35
t*e*o*d*l*f*.com βœ… F 2026-04-29 11:39:19
m*s*a.fr βœ… A 2026-04-29 10:31:35
b*a*f*a*n*i*c*l*n*.at (WP 6.5.8) βœ… F 2026-04-29 10:22:51
o*e*s*a*b*.fr βœ… C 2026-04-29 10:19:16
d*n*x*g.com (WP 6.2.2) ⚠️ F 2026-04-29 10:12:48
e*s*a*t*e*i*.fr βœ… F 2026-04-29 10:03:00
h*u*e*s*v*i*.ffrandonnee.fr (WP 6.5.8) βœ… F 2026-04-29 09:56:04
l*z*r*.ffrandonnee.fr (WP 6.5.8) βœ… F 2026-04-29 09:56:04
h*r*u*t.ffrandonnee.fr (WP 6.5.8) βœ… F 2026-04-29 09:56:04
g*r*.ffrandonnee.fr (WP 6.5.8) βœ… F 2026-04-29 09:56:04
f*u*g*n*n*c*l*e.com (WP 5.5.18) ⚠️ D 2026-04-29 09:46:10
r*b*t*g*l*m.org (WP 6.9.4) βœ… F 2026-04-29 09:46:07
f*l*s*s*c*e*y.org βœ… C 2026-04-29 09:23:45
s*b*r*s*e*d*z*.com (WP 6.9.4) βœ… F 2026-04-29 09:15:38
h*n*s*i*l*p*o*t*b*e*e*a*r*r*s.com βœ… D 2026-04-29 09:13:27
h*n*s*i*l*p*o*t*b*e*o*e*s.com βœ… D 2026-04-29 09:13:27
l*m*t*r*a*q*.com (WP 6.9.1) βœ… F 2026-04-29 09:12:20
t*e*l*b*a*t*r*.com (WP 5.9.13) ⚠️ F 2026-04-29 09:07:52
v*r*i*i*t*r*m*g*l*o.it βœ… D 2026-04-29 09:05:20
p*n*b*u*f*o*l*a*l*m*v*r*.com βœ… C 2026-04-29 08:51:42
n*w*o*t*o*l*a*l*m*v*r*.com βœ… C 2026-04-29 08:48:46
h*n*i*g*o*p*o*t*b*e*e*a*r*r*s.com βœ… C 2026-04-29 08:43:29
j*a*o*n*c*i*n.fi (WP 6.9.4) βœ… F 2026-04-29 08:42:37
f*u*d*i*h*.com (WP 6.9.4) βœ… F 2026-04-29 08:36:07
p*n*e*c*u*s*l*n*.com (WP 6.9.4) βœ… F 2026-04-29 08:26:23
h*f*a*s*a*b*n*h*m.nl (WP 6.9.4) βœ… F 2026-04-29 08:20:32
l*m*l*n*h*l*b*e*i*.com βœ… F 2026-04-29 08:18:57
g*r*e*c*n*e*t.de (WP 6.8.3) βœ… F 2026-04-29 08:14:26
i*t*r*a*i*n*l*f*l*e*k*a*s.com (WP 6.9) βœ… F 2026-04-29 08:02:04
s*c*i*d*.org (WP 6.9.4) βœ… F 2026-04-29 07:51:37
a*i*t*a*p*.it (WP 6.9.4) βœ… F 2026-04-29 07:32:33
d*n*e*p*r*z.fr (WP 6.9.4) βœ… F 2026-04-29 07:27:09
n*w*r*e*n*p*o*t*b*e*e*a*r.com βœ… C 2026-04-29 07:19:23
n*w*r*e*n*p*o*t*b*e*o*i*g.com βœ… C 2026-04-29 07:19:23
n*w*r*e*n*p*o*t*b*e*n*t*l*e*s.com βœ… C 2026-04-29 07:19:23
n*w*r*e*n*b*l*i*r*t*b*e*o*e*s.com βœ… C 2026-04-29 07:14:15
p*m*e*c*e*.com (WP 6.9.4) βœ… C 2026-04-29 06:48:36
n*w*a*p*o*t*b*e*o*e*s.com βœ… C 2026-04-29 06:34:23
t*e*e*i*s*l*f*l*o*s*i*.com βœ… C 2026-04-29 06:32:09
c*p*l*.fr (WP 6.7.5) βœ… F 2026-04-29 06:29:21
i*d*e*e*-*o*r*.ffrandonnee.fr (WP 6.5.8) βœ… F 2026-04-29 06:08:31
a*t*o*s*w*b*e*i*n.com (WP 6.9.4) βœ… F 2026-04-29 06:03:07
m*r*a*s*b*r*n*.com (WP 6.9.4) βœ… F 2026-04-29 06:02:29
c*t*x*r*a.com (WP 6.9.4) βœ… F 2026-04-29 06:01:47
f*t*m*n*r*a.com (WP 6.9.1) βœ… D 2026-04-29 05:45:31

Top 50 Plugins

Plugin Count
elementor 2,526,802
contact-form-7 2,277,621
elementor-pro 1,421,953
woocommerce 1,182,024
revslider 850,913
js_composer 557,290
jetpack 489,601
wp-rocket 407,248
essential-addons-for-elementor-lite 382,959
header-footer-elementor 326,489
gutenberg-core 310,592
elementskit-lite 306,387
gravityforms 294,309
instagram-feed 290,354
google-analytics-for-wordpress 287,819
google-site-kit 280,053
complianz-gdpr 280,022
cookie-law-info 274,921
sitepress-multilingual-cms 244,232
bluehost-wordpress-plugin 229,571
wpforms-lite 227,795
astra-sites 220,378
litespeed-cache 200,291
gtranslate 169,605
gutenberg 161,573
cookie-notice 160,949
coblocks 160,814
the-events-calendar 142,644
popup-maker 134,490
astra-addon 124,293
premium-addons-for-elementor 123,758
bb-plugin 123,460
LayerSlider 120,163
mailchimp-for-wp 120,139
wp-smushit 118,705
tablepress 115,517
creame-whatsapp-me 108,808
duracelltomi-google-tag-manager 106,664
custom-fonts 106,354
pro-elements 105,328
woocommerce-gateway-stripe 104,494
click-to-chat-for-whatsapp 103,091
cleantalk-spam-protect 103,061
akismet 101,353
honeypot 99,423
smart-slider-3 99,378
megamenu 98,594
fusion-builder 97,364
pixelyoursite 97,084
formidable 93,772

Top 50 Themes

Theme Count
hello-elementor 814,793
Divi 669,263
astra 663,737
pub 207,693
generatepress 153,055
flatsome 151,598
Avada 147,565
h4 125,378
oceanwp 111,769
kadence 99,521
enfold 85,828
salient 82,879
bb-theme 78,570
twentytwentyfour 76,265
blocksy 73,519
twentytwentyfive 71,810
cocoon-master 70,554
betheme 67,709
twentyseventeen 66,572
dt-the7 55,761
woodmart 55,117
neve 48,902
twentytwentyone 42,385
bridge 41,596
Avada-Child-Theme 38,875
swell 37,577
twentytwenty 36,716
gox 36,493
lightning 36,153
twentytwentythree 34,860
Impreza 29,885
bricks 29,885
Newspaper 27,572
twentytwentytwo 27,079
epik-redesign 23,397
extendable 22,403
pro 22,390
storefront 22,309
uncode 21,925
twentysixteen 21,545
yith-wonder 20,953
sydney 20,328
themify-ultra 19,480
Total 18,179
twentyfifteen 17,486
porto 16,658
hestia 16,053
thrive-theme 15,189
yootheme 15,117
twentynineteen 14,917