How moh-sagor/laravel-security works
Laravel Security is a defense-in-depth firewall package. Its primary request path inspects web/API traffic, applies IP policy and security rules, evaluates a risk decision, then logs or dispatches threat events. Separate product flows protect uploads, limit abusive traffic and detect bots, and obfuscate routes. The security dashboard queries event and malware records for overview and searchable attempts views. Some branches are documented capabilities whose internal wiring is not shown in the sampled source, so their uncertain connections are omitted.
Main entry points: SecurityEngine.php Security engine · SecurityDashboardController.php Dashboard controller · LaravelSecurityServiceProvider.php Package provider · UploadSecurityManager.php Upload scanner
Components 31
Request firewall
- Security middleware
src/Http/Middleware/SecurityMiddleware.php - API middleware
src/Http/Middleware/SecurityApiMiddleware.php - Security engine
src/Firewall/SecurityEngine.php - Request context
src/Firewall/SecurityContext.php - Rule registry
src/Firewall/RuleRegistry.php - Threat rules
src/Firewall/Rules - Risk policy
src/Firewall/SecurityPolicy.php - IP policy
src/Firewall/IpManager.php - Rate limiter
src/RateLimit/RateLimiter.php - Bot detection
src/Bot/BotDetector.php
Upload protection
- Upload middleware
src/Http/Middleware/SecurityUploadMiddleware.php - Upload scanner
src/Upload/UploadSecurityManager.php - File analysis
src/Upload/FileAnalyzer.php - Quarantine
src/Upload/QuarantineManager.php - Malware scanner
src/Upload/Scanners/ClamAvScanner.php
Route obfuscation
- Route middleware
src/Http/Middleware/SecurityRouteEncryptionMiddleware.php - Encrypted route handler
src/Http/Controllers/RouteEncryptionController.php - Route encryptor
src/Route/RouteEncryptor.php - Encrypted URL generator
src/Route/EncryptedUrlGenerator.php
Threat desk
- Dashboard controller
src/Http/Controllers/SecurityDashboardController.php - Dashboard metrics
src/Dashboard/DashboardManager.php - Security events
src/Models/SecurityEvent.php - Blocked IP records
src/Models/BlockedIp.php - Malware scan records
src/Models/MalwareScan.php - Overview dashboard
resources/views/dashboard.blade.php - Attempts workstation
resources/views/attempts.blade.php - Security logger
src/Support/SecurityLogger.php
Other components
- HTTP client
- Laravel router
- Security operator
- Package provider
src/LaravelSecurityServiceProvider.php
Connections 38
- HTTP client → Security middleware: sends request
- HTTP client → API middleware: sends request
- Security middleware → Security engine: inspects request
- API middleware → Security engine: inspects request
- Security engine → Request context: builds context
- Security engine → IP policy: checks IP policy
- Security engine → Rule registry: gets rules
- Security engine → Threat rules: runs enabled rules
- Threat rules → Request context: checks context
- Security engine → Risk policy: evaluates results
- Security engine → Security logger: logs threats
- Security engine → Security events: dispatches threat events
- HTTP client → Upload middleware: uploads file
- Upload middleware → Upload scanner: processes upload
- Upload scanner → File analysis: inspects file
- Upload scanner → Quarantine: quarantines threat
- Upload scanner → Malware scanner: scans file
- Quarantine → Malware scan records: records quarantine
- HTTP client → Route middleware: requests route
- Route middleware → Route encryptor: encrypts route
- Encrypted URL generator → Route encryptor: generates encrypted URL
- HTTP client → Encrypted route handler: requests token
- Encrypted route handler → Route encryptor: decrypts token
- Encrypted route handler → Laravel router: dispatches subrequest
- Security operator → Dashboard controller: views security desk
- Dashboard controller → Dashboard metrics: loads metrics
- Dashboard metrics → Security events: queries events
- Dashboard metrics → Blocked IP records: counts blocked IPs
- Dashboard metrics → Malware scan records: counts scans
- Dashboard controller → Security events: filters attempts
- Dashboard controller → Blocked IP records: loads blocked IPs
- Dashboard controller → Malware scan records: loads scan records
- Dashboard controller → Overview dashboard: renders overview
- Dashboard controller → Attempts workstation: renders attempts
- Package provider → Security middleware: registers middleware
- Package provider → API middleware: registers middleware
- Package provider → Upload middleware: registers middleware
- Package provider → Route middleware: registers middleware