Laravel Quarterly Security Review Checklist

A recurring security review checklist for Laravel applications. Covers dependency updates, access audits, configuration reviews, and security posture assessments.

Progress
0 / 15 completed

Dependencies & Updates

Run composer audit and resolve all advisories

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.

Update Laravel to the latest patch version

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.

Update PHP to the latest supported version

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.

Review and update npm/frontend dependencies

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.

Check SSL certificate expiration dates

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

Review all user accounts with admin or elevated privileges

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 API keys and service credentials

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.

Review OAuth/Socialite application permissions

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.

Audit database user permissions

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.

Verify 2FA is enabled for all admin accounts

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

Verify APP_DEBUG is false in production

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.

Review security headers for completeness

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.

Audit DNS records for stale or unused entries

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.

Review application logs for suspicious patterns

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.

Test backup restoration process

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

Other Checklists

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