mulertech/scanner-ban-bundle
A Laravel/PHP bundle for detecting and banning malicious scanners and suspicious traffic. It integrates with your app to block unwanted requests, helping protect endpoints and reduce noise from automated probes.
allowed_ips. Without it, post-deployment health checks and probes hitting http://localhost return 403, and a healthy release is reported as a failed deployment. If your roadmap includes canary releases, blue/green deploys, or automated rollback on health-check failure, this behavior is a prerequisite, not a nicety. Treat "loopback is invariant" as a stated requirement in any deployment-automation epic.Consider adoption when:
framework.trusted_proxies, or are willing to. This is a hard dependency of the package's design: it assumes real client addresses are recovered correctly behind a reverse proxy. If your proxy setup is incomplete or unknown, the allowlist will silently evaluate the proxy's address and the whole model degrades.allowed_ips, which is exactly the kind of tribal knowledge that breaks during an on-call handoff.Look elsewhere when:
For executives: This is a small, free, in-application filter that keeps junk traffic and scanners away from our Laravel services without adding a vendor or infrastructure. The latest release fixes a specific and costly failure: automated post-deployment health checks were being blocked by the filter itself, so healthy releases could be reported as failed deployments. That is now fixed by design — internal traffic is always permitted, external traffic is still filtered exactly as before. No breaking changes, no configuration work required on our side, and no change to our security posture. It does not replace our WAF or our authentication; it reduces noise in front of them.
For engineering: v1.0.1 makes loopback an invariant: requests from inside the container — health checks, post-deploy probes, the app calling itself — are allowed regardless of what allowed_ips contains. These arrive with a curl or absent User-Agent, which the blocklist would otherwise reject, so a probe against http://localhost returned 403 and failed the deploy while the app was healthy. This exempts no external traffic, because visitors through the reverse proxy carry their own address as long as framework.trusted_proxies is configured — which the package already requires. The release also drops phpstan-baseline.neon from the distribution archive, joining the other tooling files already excluded; its only referent, phpstan.neon.dist, was excluded already, so nothing in the runtime changes. Upgrade is safe: patch release, no API or config changes. Two things to confirm on our side before rollout: that framework.trusted_proxies is correctly set in every environment (otherwise the allowlist evaluates the proxy's address), and that no environment relied on the old behavior of blocking loopback — which would only ever have been accidental.
How can I help you explore Laravel packages today?