StopForumSpam
StopForumSpam integration for FlaskBB. Checks new registrations against StopForumSpam's database of known spammer usernames, email addresses and IP addresses, and lets moderators report new spammers back to it.
See flaskbb/flaskbb#391.
Installation
Install flaskbb-plugin-stopforumspam with
pip install flaskbb-plugin-stopforumspam
For local development against a FlaskBB checkout, from FlaskBB's root folder:
uv pip install -e ../flaskbb-plugin-stopforumspam
Then install the plugin from the admin panel and run the migrations
(flaskbb db upgrade).
Usage
Every registration is looked up on StopForumSpam. If the username, email address or IP address is listed with at least the configured confidence score, the registration is rejected with a generic message and the attempt is logged. Admins can review and clear that log from the admin panel's "StopForumSpam" page.
Users who can ban a member also get a "Report spammer" button on that member's profile. It submits the username, email address and the IP the member registered from to StopForumSpam, optionally with evidence, and can ban the member at the same time. Reporting needs an API key. FlaskBB doesn't store registration IPs itself, so only members who registered while this plugin was installed can be reported.
If FlaskBB runs behind a reverse proxy, configure it to pass on the
client's address (for example with Werkzeug's ProxyFix), otherwise
every registration is checked against the proxy's IP. Private and
loopback addresses are never sent.
Settings
StopForumSpam Settings, under the admin panel's Plugin Settings:
- Check registrations - master toggle for the lookup (default: on).
- Check username / email address / IP address - which fields are looked up (default: all).
- Minimum confidence (%) - reject a registration if any checked field is listed with at least this confidence (default: 50, 0 rejects any listing).
- Send email addresses hashed - send an MD5 hash instead of the plain address. StopForumSpam skips its domain blacklists and address normalisation for hashed lookups (default: off).
- Reject registrations when StopForumSpam is unreachable - fail closed instead of open (default: off).
- Request timeout (seconds) - default: 5.
- API key - only needed for reporting spammers.
The blueprint is mounted at /stopforumspam; override it with
PLUGIN_STOPFORUMSPAM_URL_PREFIX in your FlaskBB config.
License
This project is licensed under the terms of the BSD License.
Metadata
Release files for flaskbb-plugin-stopforumspam 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flaskbb_plugin_stopforumspam-1.0.2.tar.gz | 16.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flaskbb_plugin_stopforumspam-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.6 kB
Release files / flaskbb_plugin_stopforumspam-1.0.2.tar.gz
| Download URL | flaskbb_plugin_stopforumspam-1.0.2.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ed99b6cbbe802267a825da10a440e8d2f6411a486afe0fa232fcdfe5a685f34
|
|
BLAKE2b-256 checksum How to use checksums |
1c1d74c4c51f7ca5781086f2b9352f622152753ea1eafdc28572bee11768a61b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / flaskbb_plugin_stopforumspam-1.0.2-py3-none-any.whl
| Download URL | flaskbb_plugin_stopforumspam-1.0.2-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be8f38291255f92d0f594783612af6147ca2bc305157425dd64c0c9ec3532065
|
|
BLAKE2b-256 checksum How to use checksums |
d942295b6cdbd3429ad69d90a63f61bf5eb05b3e863a33740e3a859534131ec4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log