Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Laravel Stopforumspam

Laravel Stopforumspam Laravel Package

nickurt/laravel-stopforumspam

Laravel package for StopForumSpam.com that checks usernames, email addresses and IPs against the spam database. Ships validation rules, form requests, caching and configurable API endpoints to block spam registrations and forum posts.

View on GitHub
Deep Wiki
Context7

StopForumSpam for Laravel 11.x/12.x/13.x

Frequently asked questions about Laravel Stopforumspam
How do I install nickurt/laravel-stopforumspam in a Laravel 12 app?
Install it with Composer using composer require nickurt/laravel-stopforumspam, then publish the package config so it lands at config/stopforumspam.php. Laravel's package auto-discovery registers the service provider and facade, so no manual provider entry is needed. There are no migrations or schema changes, which means the install is reversible by removing the dependency and the config file. After publishing, move your thresholds and timeouts into env variables so they can be tuned without a deploy.
Which Laravel and PHP versions does this package support?
The package is published for Laravel 11.x, 12.x and 13.x, so it fits a modern Laravel application. Note that a 13.x claim usually means the package tracks a development branch of an unreleased framework line, so check the tagged releases and the composer.json constraints before committing. Verify the PHP version constraint in composer.json against your runtime, and confirm your CI matrix actually exercises the Laravel version you deploy.
How do I add the StopForumSpam check to a FormRequest?
Instantiate the package's rule object for the field you want to check and append it to that field's rule array inside your existing FormRequest rules method. The rule then calls the StopForumSpam API during validation and fails the request when the value matches the spam database above your configured threshold. Keep the rule at the edge, in the FormRequest or registration controller, and do not pass it down into services or repositories. Check the README for the exact rule class names for IP, email and username.
Can I check only the email address and skip the IP and username lookups?
Yes. The rules are attached per field, so you can add only the email rule and leave IP and username unchecked. Scoping down reduces the amount of end-user data you send to a third party, which is helpful for privacy reviews, but it also reduces detection signal. For public forum signups, checking email plus IP usually catches the bulk of automated registrations without tripping on shared username patterns.
Does the package cache StopForumSpam API responses?
Yes, caching is part of the package and is configured through the published config file. Because each check is a blocking outbound HTTP call, a sensible TTL avoids one API request per registration attempt and protects your signup latency during traffic spikes. Set the cache TTL deliberately: too short and you gain nothing, too long and a newly listed spammer keeps slipping through. Confirm the cache store used in production is shared across web nodes, not a per-node array store.
What happens to registrations if StopForumSpam is slow or down?
Every check is a synchronous outbound call made during validation, so a slow or unavailable API directly becomes slow or failed registration. Set an aggressive HTTP timeout in the config and decide explicitly whether the failure path is fail-open or fail-closed; fail-closed turns a third-party outage into a total signup outage. The package does not ship a kill switch or a log-only dry-run mode, so plan to build a config flag that skips or wraps the rule. Wrapping the rule in your own class with a try/catch is the usual way to make the fail-open behavior explicit.
How do I test the StopForumSpam validation rules without making live API calls?
Confirm the package resolves Laravel's Http facade rather than instantiating Guzzle directly, then use Http::fake() in your test suite to return canned spam and clean responses. That keeps CI deterministic and stops your pipeline from depending on a third-party service being up. If the package bypasses the injectable client, wrap it behind your own rule or service so the outbound call stays fakeable.
Will this block legitimate users on corporate NAT or mobile carrier IPs?
Possibly. StopForumSpam's dataset is forum-oriented and skews toward IP and email reputation from shared hosting, VPN ranges, corporate NAT and CGNAT mobile carriers, so legitimate users can be flagged. Hard-blocking on a low-confidence match is a support-desk and conversion risk, especially for B2B signups where corporate email domains and shared egress IPs are normal. Use conservative thresholds, treat the result as one signal alongside honeypots, rate limiting and email verification, and log decisions so you can review false positives and offer an appeal path.
Is sending user IPs and emails to StopForumSpam a GDPR concern?
Yes. You are transmitting end-user personal data, including IP address, email and possibly username, to a third-party service at the moment of registration. That requires privacy-policy disclosure, a documented lawful basis and, for EU or UK operations, a data protection impact assessment conversation. Restricting checks to email only reduces the exposure but also reduces detection, so document the trade-off rather than leaving it implicit.
Is nickurt/laravel-stopforumspam actively maintained, and what are the alternatives?
It is a small MIT-licensed package with a single effective maintainer and GitHub issues as the only support channel, so treat it as a lightweight dependency rather than a long-term platform bet. Check recent tagged releases, open-issue response times and CI coverage across PHP and Laravel versions before adopting it. Good complements or alternatives include honeypot fields, rate limiting, email verification, CAPTCHA services such as hCaptcha or reCAPTCHA, and content-based filters like Akismet for post and comment spam. This package works best as one layer in a defense-in-depth stack, not as your only anti-spam control.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core