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

Simple Bruteforce Bundle Laravel Package

evozon-php/simple-bruteforce-bundle

A Symfony bundle that adds simple brute-force protection to your application, tracking failed login attempts and blocking or throttling repeated authentication failures to help defend against credential-guessing and password-spraying attacks.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Framing the "anti-automation" workstream as a compliance deliverable, not a nice-to-have. Credential-stuffing and brute-force resistance maps directly to SOC 2 CC6.1, OWASP ASVS v4.0 §2.2.1, and PCI DSS 8.3.4. If your roadmap has an audit or enterprise security questionnaire in the next two quarters, this is a line item you can scope, estimate, and evidence.
  • A build-vs-buy-vs-configure decision for auth hardening. The real decision this surfaces is a three-way one: (a) turn on the framework's native throttling, (b) buy/adopt a dedicated package, (c) put throttling at the edge (WAF/API gateway/load balancer). This package represents option (b) for a narrow slice of the market, and it should be evaluated against (a) first — most teams discover they already own the capability.
  • Scoping a security backlog item for legacy estates. For a product line stuck on Symfony 3.x/4.x, this bundle is a candidate "mitigating control" ticket that can be closed in days rather than the quarter-plus an auth refactor takes. That's a legitimate way to buy down audit risk while the platform upgrade sits in the roadmap.
  • Informing deprecation/EOL planning. The framework-version constraint (Symfony 3+) is itself a signal for the platform-modernization roadmap: any component you'd need to adopt here is a marker that the surrounding stack is past end-of-life.
  • NOT a decision this supports: choosing a Laravel-side solution. This is a Symfony bundle — it registers a bundle class, hooks the kernel event lifecycle, and exposes a Symfony config tree. It has no service provider, no middleware contract, and no config/*.php surface. For a Laravel codebase this is a non-starter, not a weak option — Laravel's RateLimiter facade plus the throttle middleware is the native answer and requires no dependency.

When to Consider This Package

Consider it only if all of the following hold:

  • The application is Symfony 3.x or 4.x and cannot be upgraded within the current planning horizon.
  • The framework's native login_throttling (available from Symfony 5.2) is therefore unavailable to you.
  • You need a short-lived bridge — measured in weeks or a single quarter — purely to satisfy an auditor or close a pen-test finding, with a tracked ticket to remove it on upgrade.
  • Your threat model is single-node, coarse-grained blocking (per-IP or per-username attempt counting) and does not require distributed counters.
  • You have the capacity to vendor the code or fork it internally, because you are the maintainer now.

Look elsewhere — or reject — if any of these are true:

  • Symfony 5.2+. Native security.firewalls.*.login_throttling covers this with zero third-party surface. Use it.
  • Laravel. Use RateLimiter::for() and the throttle middleware on auth routes. This package does not apply.
  • You need distributed or multi-region rate limiting. Throttling at the app tier across N pods without a shared store (Redis, DynamoDB) produces inconsistent, exploitable gaps. Push to the gateway or WAF.
  • You need the response to be more than blocking — CAPTCHA escalation, step-up MFA, IP reputation feeds, alerting/SIEM integration. This is a counting-and-blocking primitive, not a fraud or bot-management platform.
  • Supply-chain scrutiny applies. Zero stars, zero dependents, and a 0 score means no community vetting: no external eyes on the code, no downstream users stress-testing edge cases, no evidence of a security disclosure process or CVE history. For a package that sits directly in the authentication path, that is the single biggest objection. An unmaintained throttle is a liability, and a bug in it can lock out legitimate users during your highest-traffic window.
  • You need ongoing support. An abandoned bundle in the login path means your team owns every future fix, including security fixes, with no upstream to lean on.

How to Pitch It (Stakeholders)

To executives (one paragraph): This is a small, unmaintained open-source add-on that throttles repeated failed logins in older Symfony applications. Our recommendation is not to adopt it. It is bound to an end-of-life framework generation, has no adoption or community review, and duplicates a capability the framework now ships natively — and, for our Laravel services, one we already have built in. Adopting it would add third-party code to our authentication path while adding no capability we can't get from the platform or our edge layer. The right move is to spend the same effort enabling native throttling and enforcing rate limits at the gateway, then close the audit item with that evidence. If we have a legacy Symfony 3/4 app that genuinely can't be upgraded this quarter, treat this package as a temporary, internally-forked stopgap with a stated removal date — never as a permanent dependency.

To engineering (the ask): Do not add this dependency to any service. Concretely: (1) confirm framework versions across the portfolio — this bundle is Symfony-only and irrelevant to Laravel services, where RateLimiter + throttle middleware is the answer; (2) on Symfony 5.2+, enable login_throttling in the security config and skip this entirely; (3) for any Symfony 3/4 app still in production, that app is the finding — prioritize its upgrade, and if a bridge is unavoidable, implement throttling in-house (a request listener plus a shared counter) rather than importing an abandoned bundle into the auth path; (4) regardless of language, confirm whether our ingress/gateway already enforces per-IP rate limits on auth endpoints, because that's the durable control and it covers every service at once. Return an estimate for (2)/(4) against the relevant compliance control so we can put a number and a date on the roadmap item.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels