Skip to content

Security Analyzers

67 analyzers detecting vulnerabilities like SQL injection, XSS, CSRF, command injection, and more.

Overview

Security analyzers focus on identifying and preventing security vulnerabilities in Laravel applications. These analyzers help protect your application from common attacks, ensure secure configuration, validate dependencies, and maintain security best practices throughout your codebase.

Key Analyzers

Critical Vulnerabilities

SQL Injection

Detects potential SQL injection vulnerabilities in database queries

Critical

Pro Column Name SQL Injection

Detects SQL injection vulnerabilities where user input controls column names

Critical

Pro Validation SQL Injection

Detects SQL injection vulnerabilities in validation rules

Critical

Pro Command Injection

Detects command injection vulnerabilities where user input is passed to shell execution functions

Critical

Pro Directory Traversal

Detects path traversal vulnerabilities that allow accessing files outside intended directories

Critical

Pro Remote Code Execution (RCE)

Detects code execution vulnerabilities that allow arbitrary code execution

Critical

Pro Object Injection

Detects unsafe deserialization that can lead to object injection attacks

Critical

Pro Server-Side Request Forgery (SSRF)

Detects SSRF vulnerabilities where user input controls server-side requests

Critical

Pro Eval Usage

Detects dangerous eval usage that can execute arbitrary code

Critical

Pro Extract Function

Detects unsafe extract usage that can overwrite variables

High

Pro XXE Injection Vulnerabilities

Detects XML External Entity injection vulnerabilities

Critical

Pro Regular Expression DoS

Detects ReDoS vulnerabilities from catastrophic backtracking in regex patterns

High

XSS Vulnerabilities

Detects XSS vulnerabilities via code analysis and HTTP header verification

Critical

CSRF Protection

Detects missing CSRF (Cross-Site Request Forgery) protection

Critical

Pro Arbitrary File Upload

Detects file upload vulnerabilities that could lead to remote code execution

Critical

Mass Assignment Vulnerabilities

Detects mass assignment vulnerabilities in Eloquent models and query builders

High

Unguarded Models

Detects Model::unguard() usage that disables mass assignment protection

High

Authentication & Authorization

Filament Security

Payment Security

Configuration & Secrets

Data Protection

Compliance & Audit

HTTP Security

Frontend & API Security

Dependencies & Updates

File System Security

How They Work

Security analyzers use a combination of:

  1. Static Code Analysis: Parses code to detect vulnerable patterns (SQL injection, XSS, mass assignment)
  2. Configuration Validation: Checks Laravel configuration for security settings
  3. Dependency Scanning: Scans Composer and npm/yarn dependencies for known vulnerabilities
  4. File System Checks: Validates file permissions and .env file security
  5. HTTP Header Analysis: Verifies security headers are properly configured

Severity Levels

SeverityDescriptionExamples
CriticalSevere security vulnerabilities that can lead to data breachesSQL injection, XSS, missing authentication, exposed secrets, vulnerable dependencies
HighSignificant security risks that need immediate attentionMass assignment, unguarded models
LowBest practice violations and minor security improvementsUp-to-date dependencies

Running Security Analyzers

Run All Security Analyzers

bash
php artisan shield:analyze --category=security

Run Specific Analyzer

bash
php artisan shield:analyze --analyzer=sql-injection
php artisan shield:analyze --analyzer=xss-vulnerabilities
php artisan shield:analyze --analyzer=mass-assignment-vulnerabilities

Run Multiple Analyzers

bash
php artisan shield:analyze --analyzer=sql-injection,xss-vulnerabilities,csrf-protection

Best Practices

Development

  • Run security analyzers before committing code
  • Fix Critical and High severity issues immediately
  • Never commit secrets or API keys to version control
  • Use environment variables for sensitive configuration

Code Reviews

  • Review security analyzer results in pull requests
  • Ensure new code follows security best practices
  • Validate that authentication and authorization are properly implemented

Production

  • Run security analyzers regularly in production
  • Monitor for new vulnerabilities in dependencies
  • Keep dependencies up-to-date with security patches
  • Review and rotate secrets regularly

CI/CD

  • Run security analyzers on every pull request
  • Fail builds on Critical security issues
  • Scan dependencies for vulnerabilities in CI pipeline
  • Monitor security posture over time

Security Checklist

Before deploying to production, ensure:

  • ✅ Application key is set and secure
  • ✅ Debug mode is disabled
  • ✅ .env file is not accessible via HTTP
  • ✅ File permissions are secure (644 for files, 755 for directories)
  • ✅ All routes have proper authentication/authorization
  • ✅ CSRF protection is enabled on all forms
  • ✅ Clickjacking protection enabled (X-Frame-Options or CSP frame-ancestors)
  • ✅ SQL injection protection (use Eloquent/parameter binding)
  • ✅ XSS protection (escape all user input)
  • ✅ File uploads have MIME type, extension, and size validation
  • ✅ Uploaded files stored in private directories (not publicly executable)
  • ✅ Mass assignment protection (use $fillable/$guarded)
  • ✅ Password hashing uses strong algorithms (bcrypt 12+ rounds or Argon2id)
  • ✅ Dependencies are up-to-date and vulnerability-free
  • ✅ HTTPS is enforced (HSTS header configured)
  • ✅ Cookies are secure (httpOnly, secure flags)
  • ✅ Cookie domain is only set when using subdomain routing
  • ✅ Login throttling is enabled