Laravel Quarterly Security Review Checklist
A recurring security review checklist for Laravel applications. Covers dependency updates, access audits, configuration reviews, and security posture assessments.
Dependencies & Updates
Check for known vulnerabilities in your Composer dependencies. Update or replace packages with active security advisories. Review the changelog for any security-related changes in updated packages.
Apply the latest patch version within your major release (e.g., 11.x.y). Patch releases contain security fixes and bug fixes without breaking changes. Review the Laravel security changelog for details.
Ensure you are running a PHP version that still receives security updates. PHP versions receive active support for 2 years and security fixes for 1 additional year. Running an unsupported PHP version means no security patches.
Run npm audit and update frontend dependencies. JavaScript supply chain attacks are increasingly common. Review any new dependencies added since the last review for trustworthiness.
Verify that all SSL certificates have at least 30 days remaining before expiration. If using Let's Encrypt with auto-renewal, confirm the renewal process is working by checking the certificate dates.
Access Control Audit
Audit admin accounts for former employees, contractors, or test accounts that should be deactivated. Verify that every admin account belongs to a current team member who needs that access level.
Rotate long-lived API keys for third-party services (payment processors, email providers, cloud services). Update the corresponding values in your .env file and deployment secrets.
If your application uses OAuth for user authentication or API integrations, review the scopes requested and ensure they are still the minimum necessary. Revoke permissions that are no longer needed.
Review the MySQL or PostgreSQL user your application connects with. It should have only the permissions needed (SELECT, INSERT, UPDATE, DELETE on application tables). It should not have DROP, CREATE, or GRANT permissions.
Check that every account with administrative access has two-factor authentication enabled. Consider making 2FA mandatory for admin roles if it is not already required.
Configuration & Monitoring Review
Configuration drift happens. Someone may have enabled debug mode for troubleshooting and forgotten to disable it. Check both the .env value and the actual response behavior by triggering a 404 or 500 error.
Check that Content-Security-Policy, Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy headers are all present and correctly configured. Use a tool like securityheaders.com.
Review all DNS records for your domain. Remove CNAME records pointing to decommissioned services to prevent subdomain takeover. Verify SPF, DKIM, and DMARC records are still correct.
Look for repeated failed login attempts, unusual API usage patterns, 404s on sensitive paths (.env, wp-admin, telescope), and any authentication anomalies in your logs from the past quarter.
Verify that your database backups can actually be restored. A backup you cannot restore is not a backup. Test the full process at least quarterly, including restoring to a staging environment.
Frequently Asked Questions
Why do I need a quarterly security review if I have continuous monitoring?
Continuous monitoring catches external-facing issues like exposed files and expired certificates. Quarterly reviews cover internal concerns that external tools cannot see: dependency vulnerabilities, access control audits, database permissions, and backup testing. They complement each other.
How long should a quarterly security review take?
For a single Laravel application, plan for 2-4 hours. Most items are quick checks (5-10 minutes each). Dependency updates and access audits may take longer depending on the number of packages and users. Document your findings to make future reviews faster.
What should I do if I find an issue during the quarterly review?
Categorize the severity. Critical issues (exposed credentials, unpatched vulnerabilities, unauthorized admin accounts) should be fixed immediately. Medium issues (missing headers, outdated dependencies without CVEs) should be scheduled within the current sprint. Low issues can be added to the backlog.
Related Fix Guides
How to Fix an Exposed .env File in Laravel
Your Laravel .env file is publicly accessible, exposing database credentials and API keys. Learn how to block access and secure your secrets.
How to Fix Debug Mode Enabled in Production Laravel
APP_DEBUG=true in production exposes stack traces, environment variables, and database credentials. Learn how to disable it safely.
How to Fix Missing Security Headers in Laravel
Your Laravel app is missing critical security headers like CSP, HSTS, and X-Frame-Options. Learn how to add them with middleware.
Other Checklists
Laravel Production Deployment Security Checklist
A comprehensive security checklist for deploying Laravel applications to production. Covers environment config, server hardening, access control, and monitoring.
Laravel API Security Checklist
Secure your Laravel API endpoints against common vulnerabilities. Covers authentication, input validation, rate limiting, and response security.
Laravel Authentication Security Checklist
Harden your Laravel authentication system against brute-force attacks, session hijacking, and credential theft with this security checklist.
Automate These Checks with StackShield
Stop running through checklists manually. StackShield continuously monitors your Laravel application for the security issues that matter most.
Start Free Trial