Comprehensive security analysis for Laravel applications
A Laravel Security Checker is an automated scanning tool that analyzes Laravel applications for common security vulnerabilities, misconfigurations, and potential attack vectors. Laravel is one of the most popular PHP frameworks, powering millions of web applications worldwide. While Laravel provides excellent built-in security features, misconfigurations and oversights can still leave applications vulnerable. Our free online scanner performs 13 comprehensive security checks to help you identify and fix vulnerabilities before they can be exploited.
The Laravel Security Checker at Jayax.dev examines your application for exposed environment files, debug mode settings, accessible storage paths, CSRF protection gaps, vendor directory exposure, missing security headers, cookie security issues, and much more. Each check produces a detailed finding with severity rating, evidence, and actionable remediation steps to help you harden your Laravel installation.
Laravel applications face a wide range of security threats. Understanding these vulnerabilities is the first step toward protecting your application and your users.
Our Laravel Security Scanner performs a systematic series of non-invasive checks against your target URL. Each check is designed to identify a specific vulnerability or misconfiguration without causing any harm to your application. The scanner operates entirely in the browser, sending standard HTTP requests similar to what a normal visitor would generate.
After completing all 13 checks, the scanner calculates an overall security score from 0 to 100. The scoring system weights findings by severity: Critical issues deduct 15 points, High issues deduct 10 points, Medium issues deduct 5 points, and Low issues deduct 2 points. Informational findings do not affect the score. The final score is mapped to a letter grade from A+ (97-100) to F (0-59).
A score of 90 or above indicates a well-hardened Laravel application with minimal exposure. Scores between 70 and 89 suggest moderate security with some areas needing attention. Below 70 indicates significant vulnerabilities that should be addressed promptly. A failing grade (below 60) means your application has critical security issues that require immediate action.
Beyond fixing the issues identified by our scanner, following these Laravel security best practices will significantly improve your application's security posture.
Our Laravel Security Checker goes beyond simple vulnerability detection. Each finding includes an AI-powered remediation feature that provides personalized, detailed fix instructions. Click the "Get AI Fix" button on any individual finding, or use the overall "AI Analysis" button to receive a comprehensive, prioritized action plan for all identified vulnerabilities. The AI considers your specific configuration and provides code examples, configuration changes, and step-by-step instructions tailored to your findings.
Regular security scanning should be part of your Laravel maintenance routine. We recommend scanning your application in these situations:
By regularly using the Laravel Security Checker at Jayax.dev, you can maintain a strong security posture and protect your application, your users, and your data from common Laravel attacks. Start scanning today to identify and fix vulnerabilities before they can be exploited.
A Laravel Security Checker is an online tool that scans Laravel applications for common security vulnerabilities and misconfigurations. It checks for exposed environment files, debug mode settings, accessible storage paths, CSRF protection, vendor directory exposure, missing security headers, and other issues that attackers could exploit. The tool provides a security score and detailed remediation steps for each finding.
The scanner sends HTTP requests to common Laravel endpoints and analyzes the responses. It checks for APP_DEBUG exposure, .env file accessibility, exposed storage/logs paths, active registration routes, CSRF protection, vendor directory listing, Mix/Manifest file exposure, phpinfo disclosure, cookie security attributes, middleware coverage, API rate limiting, CORS configuration, and security headers compliance. Each check returns a severity rating and remediation advice.
Yes, the security scan is completely safe. It only performs read-only checks by sending standard HTTP requests that any browser would make. It does not attempt to exploit vulnerabilities, modify files, or perform any destructive actions. The scan is equivalent to manually checking these URLs in your browser.
The security score ranges from 0 to 100, starting at 100 and deducting points based on findings: Critical issues deduct 15 points, High issues deduct 10, Medium issues deduct 5, and Low issues deduct 2. The score is converted to a letter grade from A+ (97-100) to F (0-59). A higher score indicates better security posture.
When APP_DEBUG is set to true in production, Laravel displays detailed error pages with stack traces, environment variables, database credentials, and internal application structure. This gives attackers valuable information about your application architecture, dependencies, and potential entry points. Always set APP_DEBUG=false in production environments.
The .env file contains your most sensitive configuration including database credentials (DB_HOST, DB_USERNAME, DB_PASSWORD), application keys (APP_KEY), API keys for third-party services, mail server credentials, and more. If exposed, attackers can use this information to access your database, decrypt sessions, impersonate your application, and potentially take full control of your server.
Ensure your web server document root points to the public/ directory, not the project root. The storage directory should never be publicly accessible. For Apache, add rules to deny access: RedirectMatch 403 /storage/.*. For Nginx, add: location ~ ^/storage/ { deny all; }. Also ensure the storage link (storage/app/public) is properly configured and only exposes intended files.
Security headers are HTTP response headers that instruct browsers to enable built-in security protections. Important headers include X-Frame-Options (prevents clickjacking), X-Content-Type-Options (prevents MIME sniffing), Content-Security-Policy (prevents XSS), Strict-Transport-Security (enforces HTTPS), Referrer-Policy (controls referrer information), and Permissions-Policy (controls browser features). You can add these via Laravel middleware.
If your application does not need public user registration, disable it by modifying your auth routes. When using Laravel Breeze or Jetstream, update Auth::routes() to Auth::routes(['register' => false]). For Fortify, set Features::registration() to false in config/fortify.php. This prevents attackers from creating unauthorized accounts.
Cross-Origin Resource Sharing (CORS) misconfiguration occurs when your Laravel API allows requests from any origin (wildcard *) or reflects the requesting origin. This can enable cross-site attacks where malicious websites interact with your API on behalf of authenticated users. Configure CORS in config/cors.php to only allow trusted, specific origins.
Laravel provides built-in rate limiting through the throttle middleware. Configure it in app/Http/Kernel.php or directly on routes. Use the RateLimiter facade to define custom rate limits: RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60); }); Apply the middleware to your API routes: Route::middleware(['throttle:api'])->group(...).
You should scan your Laravel application at least monthly, after any major changes (dependency updates, new packages, server migrations), and immediately if you suspect a security breach. Regular scanning helps catch new vulnerabilities before attackers can exploit them. Consider integrating automated security checks into your CI/CD pipeline.
Start by addressing Critical and High severity findings first. Common fixes include setting APP_DEBUG=false, blocking .env file access, protecting the storage and vendor directories, enabling CSRF protection, adding security headers via middleware, configuring proper CORS policies, implementing rate limiting, and ensuring cookies have Secure, HttpOnly, and SameSite attributes. Use Laravel's built-in security features and consider packages like laravel/fortify for authentication hardening.