🛡️
Security

Login Security

Admin Settings

Brute-force protection with intelligent account lockout

Overview

Protects user accounts from brute-force attacks by tracking failed login attempts and implementing temporary lockouts. Configurable thresholds with admin override capabilities.

Design Considerations

UX patterns and visual design notes for this feature:

  • Warning messages before lockout build trust
  • Countdown timers reduce support tickets
  • Clear lockout in admin panel - power with responsibility
  • Don't reveal if username exists (security vs UX tradeoff)

Key Benefits

What makes this feature stand out:

  • Automatic brute-force protection
  • Configurable attempt limits
  • IP and username-based tracking
  • Admin can clear lockouts instantly
Technical Note

LoginSecurityHelper tracks attempts by username. Uses cache for fast lookups. Threshold configurable in params['loginSecurity']['maxAttempts'].

Helpers
LoginSecurityHelper
Models
LoginForm
Database Tables
user

Configuration

Config Relationship Legend
DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration

Config path: params['loginSecurity']

params['loginSecurity']['enabled'] => trueparams['loginSecurity']['maxAttempts'] => 5params['loginSecurity']['lockoutDuration'] => 900params['loginSecurity']['warningThreshold'] => 3params['loginSecurity']['trackByIp'] => false
Database Settings (system_setting table)
KeyTypeDescriptionRelation
max_login_attemptsnumberMax failed attempts before lockout🔗
login_lockout_minutesnumberLockout duration in minutes🔗